Am Dienstag, 1. Februar 2011 schrieb Hauke Mehrtens: > rt2x00 does not use threaded_irq any more. Hehe, sorry for that but the interrupt threading caused performance issues on embedded devices and also introduced some nasty "bugs" on slow platforms. Hence, we moved everything to per IRQ tasklets. Thanks a lot Hauke! Helmut > Signed-off-by: Hauke Mehrtens <hauke@xxxxxxxxxx> > --- > patches/09-threaded-irq.patch | 56 ----------------------------------------- > 1 files changed, 0 insertions(+), 56 deletions(-) > > diff --git a/patches/09-threaded-irq.patch b/patches/09-threaded-irq.patch > index 059e58e..df164e9 100644 > --- a/patches/09-threaded-irq.patch > +++ b/patches/09-threaded-irq.patch > @@ -61,59 +61,3 @@ thread in process context as well. > }; > > /* Data structure for the WLAN parts (802.11 cores) of the b43 chip. */ > ---- a/drivers/net/wireless/rt2x00/rt2x00.h > -+++ b/drivers/net/wireless/rt2x00/rt2x00.h > -@@ -901,6 +901,10 @@ struct rt2x00_dev { > - * Tasklet for processing tx status reports (rt2800pci). > - */ > - struct tasklet_struct txstatus_tasklet; > -+ > -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31) > -+ struct compat_threaded_irq irq_compat; > -+#endif > - }; > - > - /* > ---- a/drivers/net/wireless/rt2x00/rt2x00pci.c > -+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c > -@@ -160,10 +160,18 @@ int rt2x00pci_initialize(struct rt2x00_d > - /* > - * Register interrupt handler. > - */ > -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31) > -+ status = compat_request_threaded_irq(&rt2x00dev->irq_compat, > -+ rt2x00dev->irq, > -+ rt2x00dev->ops->lib->irq_handler, > -+ rt2x00dev->ops->lib->irq_handler_thread, > -+ IRQF_SHARED, rt2x00dev->name, rt2x00dev); > -+#else > - status = request_threaded_irq(rt2x00dev->irq, > - rt2x00dev->ops->lib->irq_handler, > - rt2x00dev->ops->lib->irq_handler_thread, > - IRQF_SHARED, rt2x00dev->name, rt2x00dev); > -+#endif > - if (status) { > - ERROR(rt2x00dev, "IRQ %d allocation failed (error %d).\n", > - rt2x00dev->irq, status); > -@@ -187,7 +195,11 @@ void rt2x00pci_uninitialize(struct rt2x0 > - /* > - * Free irq line. > - */ > -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31) > -+ compat_free_threaded_irq(&rt2x00dev->irq_compat); > -+#else > - free_irq(rt2x00dev->irq, rt2x00dev); > -+#endif > - > - /* > - * Free DMA > -@@ -202,6 +214,9 @@ EXPORT_SYMBOL_GPL(rt2x00pci_uninitialize > - */ > - static void rt2x00pci_free_reg(struct rt2x00_dev *rt2x00dev) > - { > -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31) > -+ compat_destroy_threaded_irq(&rt2x00dev->irq_compat); > -+#endif > - kfree(rt2x00dev->rf); > - rt2x00dev->rf = NULL; > - > -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html