[PATCH] bcm43xx: Fix assertion failures in interrupt handler
In the bcm43xx interrupt handler, sanity checks are wrongly done before the verification that the interrupt is for the bcm43xx. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
d632f9fa38
commit
7d9f3e85f4
@@ -1858,9 +1858,6 @@ static irqreturn_t bcm43xx_interrupt_handler(int irq, void *dev_id)
|
|||||||
|
|
||||||
spin_lock(&bcm->irq_lock);
|
spin_lock(&bcm->irq_lock);
|
||||||
|
|
||||||
assert(bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED);
|
|
||||||
assert(bcm->current_core->id == BCM43xx_COREID_80211);
|
|
||||||
|
|
||||||
reason = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON);
|
reason = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON);
|
||||||
if (reason == 0xffffffff) {
|
if (reason == 0xffffffff) {
|
||||||
/* irq not for us (shared irq) */
|
/* irq not for us (shared irq) */
|
||||||
@@ -1871,6 +1868,9 @@ static irqreturn_t bcm43xx_interrupt_handler(int irq, void *dev_id)
|
|||||||
if (!reason)
|
if (!reason)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
assert(bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED);
|
||||||
|
assert(bcm->current_core->id == BCM43xx_COREID_80211);
|
||||||
|
|
||||||
bcm->dma_reason[0] = bcm43xx_read32(bcm, BCM43xx_MMIO_DMA0_REASON)
|
bcm->dma_reason[0] = bcm43xx_read32(bcm, BCM43xx_MMIO_DMA0_REASON)
|
||||||
& 0x0001DC00;
|
& 0x0001DC00;
|
||||||
bcm->dma_reason[1] = bcm43xx_read32(bcm, BCM43xx_MMIO_DMA1_REASON)
|
bcm->dma_reason[1] = bcm43xx_read32(bcm, BCM43xx_MMIO_DMA1_REASON)
|
||||||
|
Reference in New Issue
Block a user