提交 0335ef5d 编写于 作者: Y Yinghai Lu 提交者: David S. Miller

forcedeth: disable irq at first before schedule rx

Impact: clean up

schedule it later after disable it.
Signed-off-by: NYinghai Lu <yinghai@kernel.org>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 79d30a58
...@@ -3708,13 +3708,13 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data) ...@@ -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;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册