netxen: force link update across ifdown/ifup
Re-read link status in dev open(). Schedule link watchdog only if dev is up. Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
parent
9e41077804
commit
922c4f2c70
|
@ -934,7 +934,6 @@ request_msi:
|
|||
goto err_out_disable_msi;
|
||||
|
||||
init_timer(&adapter->watchdog_timer);
|
||||
adapter->ahw.linkup = 0;
|
||||
adapter->watchdog_timer.function = &netxen_watchdog;
|
||||
adapter->watchdog_timer.data = (unsigned long)adapter;
|
||||
INIT_WORK(&adapter->watchdog_task, netxen_watchdog_task);
|
||||
|
@ -1134,6 +1133,7 @@ static int netxen_nic_open(struct net_device *netdev)
|
|||
if (adapter->set_mtu)
|
||||
adapter->set_mtu(adapter, netdev->mtu);
|
||||
|
||||
adapter->ahw.linkup = 0;
|
||||
mod_timer(&adapter->watchdog_timer, jiffies);
|
||||
|
||||
napi_enable(&adapter->napi);
|
||||
|
@ -1171,10 +1171,8 @@ static int netxen_nic_close(struct net_device *netdev)
|
|||
|
||||
netxen_release_tx_buffers(adapter);
|
||||
|
||||
if (adapter->is_up == NETXEN_ADAPTER_UP_MAGIC) {
|
||||
FLUSH_SCHEDULED_WORK();
|
||||
del_timer_sync(&adapter->watchdog_timer);
|
||||
}
|
||||
FLUSH_SCHEDULED_WORK();
|
||||
del_timer_sync(&adapter->watchdog_timer);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1477,7 +1475,8 @@ void netxen_watchdog_task(struct work_struct *work)
|
|||
|
||||
netxen_nic_handle_phy_intr(adapter);
|
||||
|
||||
mod_timer(&adapter->watchdog_timer, jiffies + 2 * HZ);
|
||||
if (netif_running(adapter->netdev))
|
||||
mod_timer(&adapter->watchdog_timer, jiffies + 2 * HZ);
|
||||
}
|
||||
|
||||
static void netxen_tx_timeout(struct net_device *netdev)
|
||||
|
|
Loading…
Reference in New Issue