Search Linux Wireless

Re: [PATCH 1/2] compat-wireless: remove compat for threaded_irq in rt2x00

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux