forked from luck/tmp_suning_uos_patched
fm10k: start service timer on probe
Since the service task handles varying work that doesn't all require the interface to be up, launch the service timer immediately. This ensures that we continually check the mailbox, as well as handle other tasks while the device is down. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Acked-by: Matthew Vick <matthew.vick@intel.com> Tested-by: Krishneil Singh <krishneil.k.singh@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
4185756253
commit
54b3c9cfad
@ -1511,7 +1511,7 @@ void fm10k_up(struct fm10k_intfc *interface)
|
|||||||
/* enable transmits */
|
/* enable transmits */
|
||||||
netif_tx_start_all_queues(interface->netdev);
|
netif_tx_start_all_queues(interface->netdev);
|
||||||
|
|
||||||
/* kick off the service timer */
|
/* kick off the service timer now */
|
||||||
hw->mac.get_host_state = 1;
|
hw->mac.get_host_state = 1;
|
||||||
mod_timer(&interface->service_timer, jiffies);
|
mod_timer(&interface->service_timer, jiffies);
|
||||||
}
|
}
|
||||||
@ -1551,8 +1551,6 @@ void fm10k_down(struct fm10k_intfc *interface)
|
|||||||
/* disable polling routines */
|
/* disable polling routines */
|
||||||
fm10k_napi_disable_all(interface);
|
fm10k_napi_disable_all(interface);
|
||||||
|
|
||||||
del_timer_sync(&interface->service_timer);
|
|
||||||
|
|
||||||
/* capture stats one last time before stopping interface */
|
/* capture stats one last time before stopping interface */
|
||||||
fm10k_update_stats(interface);
|
fm10k_update_stats(interface);
|
||||||
|
|
||||||
@ -1678,6 +1676,9 @@ static int fm10k_sw_init(struct fm10k_intfc *interface,
|
|||||||
(unsigned long)interface);
|
(unsigned long)interface);
|
||||||
INIT_WORK(&interface->service_task, fm10k_service_task);
|
INIT_WORK(&interface->service_task, fm10k_service_task);
|
||||||
|
|
||||||
|
/* kick off service timer now, even when interface is down */
|
||||||
|
mod_timer(&interface->service_timer, (HZ * 2) + jiffies);
|
||||||
|
|
||||||
/* Intitialize timestamp data */
|
/* Intitialize timestamp data */
|
||||||
fm10k_ts_init(interface);
|
fm10k_ts_init(interface);
|
||||||
|
|
||||||
@ -1894,6 +1895,8 @@ static void fm10k_remove(struct pci_dev *pdev)
|
|||||||
struct fm10k_intfc *interface = pci_get_drvdata(pdev);
|
struct fm10k_intfc *interface = pci_get_drvdata(pdev);
|
||||||
struct net_device *netdev = interface->netdev;
|
struct net_device *netdev = interface->netdev;
|
||||||
|
|
||||||
|
del_timer_sync(&interface->service_timer);
|
||||||
|
|
||||||
set_bit(__FM10K_SERVICE_DISABLE, &interface->state);
|
set_bit(__FM10K_SERVICE_DISABLE, &interface->state);
|
||||||
cancel_work_sync(&interface->service_task);
|
cancel_work_sync(&interface->service_task);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user