summaryrefslogtreecommitdiffstats
path: root/tools/testing/nvdimm/test/nfit.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2017-04-18 18:56:31 +0200
committerDan Williams <dan.j.williams@intel.com>2017-04-18 19:55:37 +0200
commitfbabd829fe76a72a6444f64361cf8b2a9848639d (patch)
treed2fe120c94ec375c6cf44e822b2435ffa39819f0 /tools/testing/nvdimm/test/nfit.c
parenttools/testing/nvdimm: fix nfit_test shutdown crash (diff)
downloadlinux-fbabd829fe76a72a6444f64361cf8b2a9848639d.tar.xz
linux-fbabd829fe76a72a6444f64361cf8b2a9848639d.zip
acpi, nfit: fix module unload vs workqueue shutdown race
The workqueue may still be running when the devres callbacks start firing to deallocate an acpi_nfit_desc instance. Stop and flush the workqueue before letting any other devres de-allocations proceed. Reported-by: Linda Knippers <linda.knippers@hpe.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'tools/testing/nvdimm/test/nfit.c')
-rw-r--r--tools/testing/nvdimm/test/nfit.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/testing/nvdimm/test/nfit.c b/tools/testing/nvdimm/test/nfit.c
index d7fb1b894128..c2187178fb13 100644
--- a/tools/testing/nvdimm/test/nfit.c
+++ b/tools/testing/nvdimm/test/nfit.c
@@ -1851,6 +1851,10 @@ static int nfit_test_probe(struct platform_device *pdev)
if (rc)
return rc;
+ rc = devm_add_action_or_reset(&pdev->dev, acpi_nfit_shutdown, acpi_desc);
+ if (rc)
+ return rc;
+
if (nfit_test->setup != nfit_test0_setup)
return 0;