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