Index: sys/compat/linuxkpi/common/include/linux/interrupt.h =================================================================== --- sys/compat/linuxkpi/common/include/linux/interrupt.h +++ sys/compat/linuxkpi/common/include/linux/interrupt.h @@ -52,9 +52,11 @@ struct resource *res; void *arg; irqreturn_t (*handler)(int, void *); - irqreturn_t (*thread_handler)(int, void *); void *tag; unsigned int irq; + + /* XXX All new entries must be after this in stable/13 */ + irqreturn_t (*thread_handler)(int, void *); }; void linux_irq_handler(void *); Index: sys/compat/linuxkpi/common/include/linux/pci.h =================================================================== --- sys/compat/linuxkpi/common/include/linux/pci.h +++ sys/compat/linuxkpi/common/include/linux/pci.h @@ -237,7 +237,6 @@ struct list_head links; struct pci_driver *pdrv; struct pci_bus *bus; - struct pci_dev *root; uint16_t device; uint16_t vendor; uint16_t subsystem_vendor; @@ -246,16 +245,21 @@ unsigned int devfn; uint32_t class; uint8_t revision; - bool managed; /* devres "pcim_*(). */ - bool want_iomap_res; bool msi_enabled; - bool msix_enabled; - phys_addr_t rom; - size_t romlen; TAILQ_HEAD(, pci_mmio_region) mmio; + + /* Add all new items at the end of the list in 13 */ + struct pci_dev *root; + phys_addr_t rom; + size_t romlen; + bool managed; /* devres "pcim_*(). */ + bool want_iomap_res; + bool msix_enabled; }; +/* XXX add kassert here on the mmio offset */ + /* We need some meta-struct to keep track of these for devres. */ struct pci_devres { bool enable_io; Index: sys/compat/linuxkpi/common/include/linux/slab.h =================================================================== --- sys/compat/linuxkpi/common/include/linux/slab.h +++ sys/compat/linuxkpi/common/include/linux/slab.h @@ -210,5 +210,6 @@ extern void lkpi_kmem_cache_free(struct linux_kmem_cache *, void *); extern void linux_kmem_cache_destroy(struct linux_kmem_cache *); void linux_kfree_async(void *); +void linux_kmem_cache_free_rcu_callback(struct rcu_head *head); #endif /* _LINUX_SLAB_H_ */ Index: sys/compat/linuxkpi/common/src/linux_slab.c =================================================================== --- sys/compat/linuxkpi/common/src/linux_slab.c +++ sys/compat/linuxkpi/common/src/linux_slab.c @@ -96,7 +96,7 @@ return (0); } -static void +void linux_kmem_cache_free_rcu_callback(struct rcu_head *head) { struct linux_kmem_rcu *rcu = @@ -145,8 +145,8 @@ return (c); } -static inline void -lkpi_kmem_cache_free_rcu(struct linux_kmem_cache *c, void *m) +void +linux_kmem_cache_free_rcu(struct linux_kmem_cache *c, void *m) { struct linux_kmem_rcu *rcu = LINUX_KMEM_TO_RCU(c, m); @@ -183,7 +183,7 @@ lkpi_kmem_cache_free(struct linux_kmem_cache *c, void *m) { if (unlikely(c->cache_flags & SLAB_TYPESAFE_BY_RCU)) - lkpi_kmem_cache_free_rcu(c, m); + linux_kmem_cache_free_rcu(c, m); else if (unlikely(curthread->td_critnest != 0)) lkpi_kmem_cache_free_async(c, m); else Index: sys/sys/param.h =================================================================== --- sys/sys/param.h +++ sys/sys/param.h @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300512 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300513 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,