Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=313b0305b5a1e7e0fb39383befbf79558ce68a9c
Commit:     313b0305b5a1e7e0fb39383befbf79558ce68a9c
Parent:     2584fbc3a61897de5eddd56b39a4fa9cd074eca2
Author:     Francois Romieu <[EMAIL PROTECTED]>
AuthorDate: Thu Aug 2 00:00:48 2007 +0200
Committer:  Francois Romieu <[EMAIL PROTECTED]>
CommitDate: Tue Aug 7 00:07:36 2007 +0200

    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 <[EMAIL PROTECTED]>
    Cc: Edward Hsu <[EMAIL PROTECTED]>
---
 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 ec4f545..631e55d 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)
                        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
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to