Page MenuHomeFreeBSD

D31363.id95505.diff
No OneTemporary

D31363.id95505.diff

diff --git a/sys/compat/linuxkpi/common/include/linux/interrupt.h b/sys/compat/linuxkpi/common/include/linux/interrupt.h
--- a/sys/compat/linuxkpi/common/include/linux/interrupt.h
+++ b/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 *);
diff --git a/sys/compat/linuxkpi/common/include/linux/pci.h b/sys/compat/linuxkpi/common/include/linux/pci.h
--- a/sys/compat/linuxkpi/common/include/linux/pci.h
+++ b/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;
diff --git a/sys/compat/linuxkpi/common/include/linux/slab.h b/sys/compat/linuxkpi/common/include/linux/slab.h
--- a/sys/compat/linuxkpi/common/include/linux/slab.h
+++ b/sys/compat/linuxkpi/common/include/linux/slab.h
@@ -210,5 +210,7 @@
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);
+void linux_kmem_cache_free_rcu(struct linux_kmem_cache *, void *);
#endif /* _LINUX_SLAB_H_ */
diff --git a/sys/compat/linuxkpi/common/src/linux_slab.c b/sys/compat/linuxkpi/common/src/linux_slab.c
--- a/sys/compat/linuxkpi/common/src/linux_slab.c
+++ b/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
diff --git a/sys/sys/param.h b/sys/sys/param.h
--- a/sys/sys/param.h
+++ b/sys/sys/param.h
@@ -60,7 +60,7 @@
* in the range 5 to 9.
*/
#undef __FreeBSD_version
-#define __FreeBSD_version 1300514 /* Master, propagated to newvers */
+#define __FreeBSD_version 1300515 /* Master, propagated to newvers */
/*
* __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 23, 7:39 AM (5 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17725150
Default Alt Text
D31363.id95505.diff (3 KB)

Event Timeline