pds_core: check for work queue before use
authorShannon Nelson <shannon.nelson@amd.com>
Thu, 24 Aug 2023 16:17:53 +0000 (09:17 -0700)
committerJakub Kicinski <kuba@kernel.org>
Sat, 26 Aug 2023 02:05:58 +0000 (19:05 -0700)
Add a check that the wq exists before queuing up work for a
failed devcmd, as the PF is responsible for health and the VF
doesn't have a wq.

Fixes: c2dbb0904310 ("pds_core: health timer and workqueue")
Signed-off-by: Shannon Nelson <shannon.nelson@amd.com>
Reviewed-by: Brett Creeley <brett.creeley@amd.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20230824161754.34264-5-shannon.nelson@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/amd/pds_core/dev.c

index debe5216fe29e2e8ada260ffd3fd4887f5b161d6..524f422ee7ace5a7098b376c66024955bf0f65d1 100644 (file)
@@ -183,7 +183,7 @@ int pdsc_devcmd_locked(struct pdsc *pdsc, union pds_core_dev_cmd *cmd,
        err = pdsc_devcmd_wait(pdsc, max_seconds);
        memcpy_fromio(comp, &pdsc->cmd_regs->comp, sizeof(*comp));
 
-       if (err == -ENXIO || err == -ETIMEDOUT)
+       if ((err == -ENXIO || err == -ETIMEDOUT) && pdsc->wq)
                queue_work(pdsc->wq, &pdsc->health_work);
 
        return err;