forcedeth: disable irq at first before schedule rx
Impact: clean up schedule it later after disable it. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
79d30a581f
Коммит
0335ef5d59
|
@ -3708,13 +3708,13 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data)
|
||||||
u32 events;
|
u32 events;
|
||||||
|
|
||||||
events = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQ_RX_ALL;
|
events = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQ_RX_ALL;
|
||||||
writel(NVREG_IRQ_RX_ALL, base + NvRegMSIXIrqStatus);
|
|
||||||
|
|
||||||
if (events) {
|
if (events) {
|
||||||
napi_schedule(&np->napi);
|
|
||||||
/* disable receive interrupts on the nic */
|
/* disable receive interrupts on the nic */
|
||||||
writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask);
|
writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask);
|
||||||
pci_push(base);
|
pci_push(base);
|
||||||
|
writel(NVREG_IRQ_RX_ALL, base + NvRegMSIXIrqStatus);
|
||||||
|
napi_schedule(&np->napi);
|
||||||
}
|
}
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче