diff options
author | Dhananjay Phadke <dhananjay@netxen.com> | 2009-09-20 23:20:38 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-09-23 01:00:01 +0400 |
commit | a598ae177a11ebae065e20059d9bc63a5da4ccc3 (patch) | |
tree | 8228a1815d3cd565561cc1c5baaff277a71942a3 /drivers/net/netxen | |
parent | 03b88a66c040acb4b770221ca24a609527b47fc5 (diff) | |
download | linux-a598ae177a11ebae065e20059d9bc63a5da4ccc3.tar.xz |
netxen: fix minor tx timeout bug
Fix minor bug in netdev tx timeout handling which could
always lead to firmware reset instead of pci function reset.
netxen_nic_reset_context() requires __NX_RESETTING bit
cleared.
Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/netxen')
-rw-r--r-- | drivers/net/netxen/netxen_nic_main.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c index f7bdde111dfc..b8c723539dd2 100644 --- a/drivers/net/netxen/netxen_nic_main.c +++ b/drivers/net/netxen/netxen_nic_main.c @@ -1903,12 +1903,13 @@ static void netxen_tx_timeout_task(struct work_struct *work) netif_wake_queue(adapter->netdev); - goto done; + clear_bit(__NX_RESETTING, &adapter->state); } else { + clear_bit(__NX_RESETTING, &adapter->state); if (!netxen_nic_reset_context(adapter)) { adapter->netdev->trans_start = jiffies; - goto done; + return; } /* context reset failed, fall through for fw reset */ @@ -1916,8 +1917,6 @@ static void netxen_tx_timeout_task(struct work_struct *work) request_reset: adapter->need_fw_reset = 1; -done: - clear_bit(__NX_RESETTING, &adapter->state); } struct net_device_stats *netxen_nic_get_stats(struct net_device *netdev) |