[TG3]: Skip timer code during full lock
authorMichael Chan <mchan@broadcom.com>
Tue, 28 Mar 2006 07:20:14 +0000 (23:20 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 29 Mar 2006 01:02:39 +0000 (17:02 -0800)
Skip the main timer code if interrupts are disabled in the full lock
state.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tg3.c

index c504ff2..b6a6051 100644 (file)
@@ -6468,6 +6468,9 @@ static void tg3_timer(unsigned long __opaque)
 {
        struct tg3 *tp = (struct tg3 *) __opaque;
 
+       if (tp->irq_sync)
+               goto restart_timer;
+
        spin_lock(&tp->lock);
 
        if (!(tp->tg3_flags & TG3_FLAG_TAGGED_STATUS)) {
@@ -6558,6 +6561,7 @@ static void tg3_timer(unsigned long __opaque)
 
        spin_unlock(&tp->lock);
 
+restart_timer:
        tp->timer.expires = jiffies + tp->timer_offset;
        add_timer(&tp->timer);
 }