* [PATCH 1/2] compat-wireless: remove compat for threaded_irq in rt2x00
@ 2011-02-01 21:13 Hauke Mehrtens
2011-02-01 21:13 ` [PATCH 2/2] compat-wireless: backport of alloc_ordered_workqueue into compat.git Hauke Mehrtens
2011-02-01 21:17 ` [PATCH 1/2] compat-wireless: remove compat for threaded_irq in rt2x00 Helmut Schaa
0 siblings, 2 replies; 3+ messages in thread
From: Hauke Mehrtens @ 2011-02-01 21:13 UTC (permalink / raw)
To: mcgrof; +Cc: linux-wireless, Hauke Mehrtens
rt2x00 does not use threaded_irq any more.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
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;
-
--
1.7.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] compat-wireless: backport of alloc_ordered_workqueue into compat.git
2011-02-01 21:13 [PATCH 1/2] compat-wireless: remove compat for threaded_irq in rt2x00 Hauke Mehrtens
@ 2011-02-01 21:13 ` Hauke Mehrtens
2011-02-01 21:17 ` [PATCH 1/2] compat-wireless: remove compat for threaded_irq in rt2x00 Helmut Schaa
1 sibling, 0 replies; 3+ messages in thread
From: Hauke Mehrtens @ 2011-02-01 21:13 UTC (permalink / raw)
To: mcgrof; +Cc: linux-wireless, Hauke Mehrtens
The backport of alloc_ordered_workqueue is now in compat.git.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
patches/36-workqueue.patch | 15 ++-------------
1 files changed, 2 insertions(+), 13 deletions(-)
diff --git a/patches/36-workqueue.patch b/patches/36-workqueue.patch
index 06e580d..dfa6d8b 100644
--- a/patches/36-workqueue.patch
+++ b/patches/36-workqueue.patch
@@ -1,20 +1,9 @@
Backport commit 99b88a0ecbdbc6df03527292571b2b442965814a
+The rest is backported in include/linux/compat-2.6.37.h
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
-@@ -787,7 +787,11 @@ int ieee80211_register_hw(struct ieee802
- hw->queues = IEEE80211_MAX_QUEUES;
-
- local->workqueue =
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
- alloc_ordered_workqueue(wiphy_name(local->hw.wiphy), 0);
-+#else
-+ create_singlethread_workqueue(wiphy_name(local->hw.wiphy));
-+#endif
- if (!local->workqueue) {
- result = -ENOMEM;
- goto fail_workqueue;
-@@ -1002,6 +1006,10 @@ static void __exit ieee80211_exit(void)
+@@ -1002,6 +1002,10 @@ static void __exit ieee80211_exit(void)
rc80211_minstrel_ht_exit();
rc80211_minstrel_exit();
--
1.7.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] compat-wireless: remove compat for threaded_irq in rt2x00
2011-02-01 21:13 [PATCH 1/2] compat-wireless: remove compat for threaded_irq in rt2x00 Hauke Mehrtens
2011-02-01 21:13 ` [PATCH 2/2] compat-wireless: backport of alloc_ordered_workqueue into compat.git Hauke Mehrtens
@ 2011-02-01 21:17 ` Helmut Schaa
1 sibling, 0 replies; 3+ messages in thread
From: Helmut Schaa @ 2011-02-01 21:17 UTC (permalink / raw)
To: Hauke Mehrtens; +Cc: mcgrof, linux-wireless
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@hauke-m.de>
> ---
> 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;
> -
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-02-01 21:18 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-01 21:13 [PATCH 1/2] compat-wireless: remove compat for threaded_irq in rt2x00 Hauke Mehrtens
2011-02-01 21:13 ` [PATCH 2/2] compat-wireless: backport of alloc_ordered_workqueue into compat.git Hauke Mehrtens
2011-02-01 21:17 ` [PATCH 1/2] compat-wireless: remove compat for threaded_irq in rt2x00 Helmut Schaa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).