aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancois Romieu <romieu@fr.zoreil.com>2007-08-01 18:00:48 -0400
committerFrancois Romieu <romieu@electric-eye.fr.zoreil.com>2007-08-06 18:07:36 -0400
commit313b0305b5a1e7e0fb39383befbf79558ce68a9c (patch)
tree1e74626aa9a9c348a216335248fa98c28584124b
parent2584fbc3a61897de5eddd56b39a4fa9cd074eca2 (diff)
r8169: avoid needless NAPI poll scheduling
Theory : though needless, it should not have hurt. Practice: it does not play nice with DEBUG_SHIRQ + LOCKDEP + UP (see https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=242572). The patch makes sense in itself but I should dig why it has an effect on #242572 (assuming that NAPI do not change in a near future). Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Cc: Edward Hsu <edward_hsu@realtek.com.tw>
-rw-r--r--drivers/net/r8169.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index ec4f545c491f..631e55dbbdd0 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -2767,14 +2767,16 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
2767 rtl8169_check_link_status(dev, tp, ioaddr); 2767 rtl8169_check_link_status(dev, tp, ioaddr);
2768 2768
2769#ifdef CONFIG_R8169_NAPI 2769#ifdef CONFIG_R8169_NAPI
2770 RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event); 2770 if (status & tp->napi_event) {
2771 tp->intr_mask = ~tp->napi_event; 2771 RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
2772 2772 tp->intr_mask = ~tp->napi_event;
2773 if (likely(netif_rx_schedule_prep(dev))) 2773
2774 __netif_rx_schedule(dev); 2774 if (likely(netif_rx_schedule_prep(dev)))
2775 else if (netif_msg_intr(tp)) { 2775 __netif_rx_schedule(dev);
2776 printk(KERN_INFO "%s: interrupt %04x taken in poll\n", 2776 else if (netif_msg_intr(tp)) {
2777 dev->name, status); 2777 printk(KERN_INFO "%s: interrupt %04x in poll\n",
2778 dev->name, status);
2779 }
2778 } 2780 }
2779 break; 2781 break;
2780#else 2782#else