|
@@ -1390,7 +1390,8 @@ static u32 atl1_check_link(struct atl1_adapter *adapter)
|
|
|
/* auto-neg, insert timer to re-config phy */
|
|
|
if (!adapter->phy_timer_pending) {
|
|
|
adapter->phy_timer_pending = true;
|
|
|
- mod_timer(&adapter->phy_config_timer, jiffies + 3 * HZ);
|
|
|
+ mod_timer(&adapter->phy_config_timer,
|
|
|
+ round_jiffies(jiffies + 3 * HZ));
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
@@ -2525,17 +2526,6 @@ static irqreturn_t atl1_intr(int irq, void *data)
|
|
|
return IRQ_HANDLED;
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * atl1_watchdog - Timer Call-back
|
|
|
- * @data: pointer to netdev cast into an unsigned long
|
|
|
- */
|
|
|
-static void atl1_watchdog(unsigned long data)
|
|
|
-{
|
|
|
- struct atl1_adapter *adapter = (struct atl1_adapter *)data;
|
|
|
-
|
|
|
- /* Reset the timer */
|
|
|
- mod_timer(&adapter->watchdog_timer, jiffies + 2 * HZ);
|
|
|
-}
|
|
|
|
|
|
/*
|
|
|
* atl1_phy_config - Timer Call-back
|
|
@@ -2608,7 +2598,6 @@ static s32 atl1_up(struct atl1_adapter *adapter)
|
|
|
if (unlikely(err))
|
|
|
goto err_up;
|
|
|
|
|
|
- mod_timer(&adapter->watchdog_timer, jiffies);
|
|
|
atlx_irq_enable(adapter);
|
|
|
atl1_check_link(adapter);
|
|
|
netif_start_queue(netdev);
|
|
@@ -2626,7 +2615,6 @@ static void atl1_down(struct atl1_adapter *adapter)
|
|
|
struct net_device *netdev = adapter->netdev;
|
|
|
|
|
|
netif_stop_queue(netdev);
|
|
|
- del_timer_sync(&adapter->watchdog_timer);
|
|
|
del_timer_sync(&adapter->phy_config_timer);
|
|
|
adapter->phy_timer_pending = false;
|
|
|
|
|
@@ -3050,13 +3038,8 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
|
|
|
netif_carrier_off(netdev);
|
|
|
netif_stop_queue(netdev);
|
|
|
|
|
|
- init_timer(&adapter->watchdog_timer);
|
|
|
- adapter->watchdog_timer.function = &atl1_watchdog;
|
|
|
- adapter->watchdog_timer.data = (unsigned long)adapter;
|
|
|
-
|
|
|
- init_timer(&adapter->phy_config_timer);
|
|
|
- adapter->phy_config_timer.function = &atl1_phy_config;
|
|
|
- adapter->phy_config_timer.data = (unsigned long)adapter;
|
|
|
+ setup_timer(&adapter->phy_config_timer, &atl1_phy_config,
|
|
|
+ (unsigned long)adapter);
|
|
|
adapter->phy_timer_pending = false;
|
|
|
|
|
|
INIT_WORK(&adapter->tx_timeout_task, atl1_tx_timeout_task);
|