diff options
author | Francois Romieu <romieu@fr.zoreil.com> | 2007-08-01 18:00:48 -0400 |
---|---|---|
committer | Francois Romieu <romieu@electric-eye.fr.zoreil.com> | 2007-08-06 18:07:36 -0400 |
commit | 313b0305b5a1e7e0fb39383befbf79558ce68a9c (patch) | |
tree | 1e74626aa9a9c348a216335248fa98c28584124b /drivers/net/r8169.c | |
parent | 2584fbc3a61897de5eddd56b39a4fa9cd074eca2 (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>
Diffstat (limited to 'drivers/net/r8169.c')
-rw-r--r-- | drivers/net/r8169.c | 18 |
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 |