[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100512131657.76582f10@dhcp-lab-109.englab.brq.redhat.com>
Date: Wed, 12 May 2010 13:16:57 +0200
From: Stanislaw Gruszka <sgruszka@...hat.com>
To: netdev@...r.kernel.org
Cc: Eric Dumazet <eric.dumazet@...il.com>,
Eilon Greenstein <eilong@...adcom.com>,
Vladislav Zolotarov <vladz@...adcom.com>,
Dmitry Kravkov <dmitry@...adcom.com>,
Michael Chan <mchan@...adcom.com>,
Breno Leitao <leitao@...ux.vnet.ibm.com>,
Matt Carlson <mcarlson@...adcom.com>
Subject: [RFC PATCH] tg3: use netif_carrier_off to prevent tx timeout
Touching ->trans_start make netdev watchdog timeouts only less probable.
Use netif_carrier_off to prevent timeout, lately we take care of turning
carrier on.
Signed-off-by: Stanislaw Gruszka <sgruszka@...hat.com>
---
Patch was not tested!
drivers/net/tg3.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 573054a..d745038 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -753,7 +753,7 @@ static void tg3_napi_enable(struct tg3 *tp)
static inline void tg3_netif_stop(struct tg3 *tp)
{
- tp->dev->trans_start = jiffies; /* prevent tx timeout */
+ netif_carrier_off(tp->dev); /* prevent tx timeout */
tg3_napi_disable(tp);
netif_tx_disable(tp->dev);
}
@@ -10964,12 +10964,14 @@ static int tg3_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
static void tg3_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
{
struct tg3 *tp = netdev_priv(dev);
+ int link_up;
if (!netif_running(dev)) {
tp->vlgrp = grp;
return;
}
+ link_up = netif_carrier_ok(dev);
tg3_netif_stop(tp);
tg3_full_lock(tp, 0);
@@ -10979,6 +10981,8 @@ static void tg3_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
/* Update RX_MODE_KEEP_VLAN_TAG bit in RX_MODE register. */
__tg3_set_rx_mode(dev);
+ if (link_up)
+ netif_carrier_on(dev);
tg3_netif_start(tp);
tg3_full_unlock(tp);
--
1.5.5.6
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists