|
@@ -2767,14 +2767,16 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
|
|
|
rtl8169_check_link_status(dev, tp, ioaddr);
|
|
|
|
|
|
#ifdef CONFIG_R8169_NAPI
|
|
|
- RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
|
|
|
- tp->intr_mask = ~tp->napi_event;
|
|
|
-
|
|
|
- if (likely(netif_rx_schedule_prep(dev)))
|
|
|
- __netif_rx_schedule(dev);
|
|
|
- else if (netif_msg_intr(tp)) {
|
|
|
- printk(KERN_INFO "%s: interrupt %04x taken in poll\n",
|
|
|
- dev->name, status);
|
|
|
+ if (status & tp->napi_event) {
|
|
|
+ RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
|
|
|
+ tp->intr_mask = ~tp->napi_event;
|
|
|
+
|
|
|
+ if (likely(netif_rx_schedule_prep(dev)))
|
|
|
+ __netif_rx_schedule(dev);
|
|
|
+ else if (netif_msg_intr(tp)) {
|
|
|
+ printk(KERN_INFO "%s: interrupt %04x in poll\n",
|
|
|
+ dev->name, status);
|
|
|
+ }
|
|
|
}
|
|
|
break;
|
|
|
#else
|