pds_core: no health-thread in VF path
authorShannon Nelson <shannon.nelson@amd.com>
Sat, 10 Feb 2024 00:20:02 +0000 (16:20 -0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 13 Feb 2024 01:38:01 +0000 (17:38 -0800)
The VFs don't run the health thread, so don't try to
stop or restart the non-existent timer or work item.

Fixes: d9407ff11809 ("pds_core: Prevent health thread from running during reset/remove")
Reviewed-by: Brett Creeley <brett.creeley@amd.com>
Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
Link: https://lore.kernel.org/r/20240210002002.49483-1-shannon.nelson@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/amd/pds_core/main.c

index cdbf053..0050c58 100644 (file)
@@ -451,6 +451,9 @@ static void pdsc_remove(struct pci_dev *pdev)
 
 static void pdsc_stop_health_thread(struct pdsc *pdsc)
 {
+       if (pdsc->pdev->is_virtfn)
+               return;
+
        timer_shutdown_sync(&pdsc->wdtimer);
        if (pdsc->health_work.func)
                cancel_work_sync(&pdsc->health_work);
@@ -458,6 +461,9 @@ static void pdsc_stop_health_thread(struct pdsc *pdsc)
 
 static void pdsc_restart_health_thread(struct pdsc *pdsc)
 {
+       if (pdsc->pdev->is_virtfn)
+               return;
+
        timer_setup(&pdsc->wdtimer, pdsc_wdtimer_cb, 0);
        mod_timer(&pdsc->wdtimer, jiffies + 1);
 }