Search Linux Wireless

Re: bcm43xx-mac80211: a fix for the shared interrupt problem

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

 



Michael Buesch wrote:

Ok, seems like we are missing some dummy reads to drain
this IRQ. I'll look at this tomorrow.
Thanks for tracking this down.

As we shouldn't get any interrupts until STAT_STARTED is reached, I wondered why interrupts were enabled so early. As far as I can tell, none of the steps from where interrupts are enabled to where STAT_STARTED is set depend on having them enabled; therefore, I tried a patch that delayed the enabling of interrupts until after we had reached STAT_STARTED. It works for all my systems.

I'm beginning to think that the shared interrupts have nothing to do with the problem, but it is more likely caused by peculiarities in the PCMCIA bridge in my ancient laptop.

Larry

Index: wireless-mb/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c
===================================================================
--- wireless-mb.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c
+++ wireless-mb/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c
@@ -3014,13 +3014,13 @@ static int bcm43xx_wireless_core_start(s
 		       dev->dev->irq);
 		goto out;
 	}
-	bcm43xx_interrupt_enable(dev, dev->irq_savedstate);
 	bcm43xx_mac_enable(dev);

 	bcm43xx_periodic_tasks_setup(dev);

 	ieee80211_start_queues(dev->wl->hw);
 	bcm43xx_set_status(dev, BCM43xx_STAT_STARTED);
+	bcm43xx_interrupt_enable(dev, dev->irq_savedstate);
 	bcmdbg(dev->wl, "Wireless interface started\n");
 out:
 	return err;
-
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