@@ -6,39 +6,39 @@ thread in process context as well.
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
-@@ -3970,8 +3970,13 @@ redo:
- if (dev->sdev->bus->bustype == SSB_BUSTYPE_SDIO) {
+@@ -3971,8 +3971,13 @@ redo:
+ if (b43_bus_host_is_sdio(dev->dev)) {
b43_sdio_free_irq(dev);
} else {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
+ compat_synchronize_threaded_irq(&dev->irq_compat);
+ compat_free_threaded_irq(&dev->irq_compat);
+#else
- synchronize_irq(dev->sdev->irq);
- free_irq(dev->sdev->irq, dev);
+ synchronize_irq(dev->dev->irq);
+ free_irq(dev->dev->irq, dev);
+#endif
}
mutex_lock(&wl->mutex);
dev = wl->current_dev;
-@@ -4011,9 +4016,17 @@ static int b43_wireless_core_start(struc
+@@ -4012,9 +4017,17 @@ static int b43_wireless_core_start(struc
goto out;
}
} else {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
+ err = compat_request_threaded_irq(&dev->irq_compat,
-+ dev->sdev->irq,
++ dev->dev->irq,
+ b43_interrupt_handler,
+ b43_interrupt_thread_handler,
+ IRQF_SHARED, KBUILD_MODNAME, dev);
+#else
- err = request_threaded_irq(dev->sdev->irq, b43_interrupt_handler,
+ err = request_threaded_irq(dev->dev->irq, b43_interrupt_handler,
b43_interrupt_thread_handler,
IRQF_SHARED, KBUILD_MODNAME, dev);
+#endif
if (err) {
b43err(dev->wl, "Cannot request IRQ-%d\n",
- dev->sdev->irq);
-@@ -4728,6 +4741,10 @@ static int b43_setup_bands(struct b43_wl
+ dev->dev->irq);
+@@ -4734,6 +4747,10 @@ static int b43_setup_bands(struct b43_wl
static void b43_wireless_core_detach(struct b43_wldev *dev)
{
@@ -51,7 +51,7 @@ thread in process context as well.
b43_release_firmware(dev);
--- a/drivers/net/wireless/b43/b43.h
+++ b/drivers/net/wireless/b43/b43.h
-@@ -772,6 +772,9 @@ struct b43_wldev {
+@@ -774,6 +774,9 @@ struct b43_wldev {
unsigned int tx_count;
unsigned int rx_count;
#endif
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> --- patches/09-threaded-irq.patch | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-)