diff options
author | Aaron Lu <aaron.lu@intel.com> | 2014-05-26 14:34:07 +0200 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-05-26 14:34:07 +0200 |
commit | 2807bd18cc60ec471917b5158e98e4d7b7e030fb (patch) | |
tree | 69a1aee01047638ac34d2c83f4e58d41c1c99d03 /drivers/acpi/thermal.c | |
parent | 4b660a7f5c8099d88d1a43d8ae138965112592c7 (diff) | |
download | talos-op-linux-2807bd18cc60ec471917b5158e98e4d7b7e030fb.tar.gz talos-op-linux-2807bd18cc60ec471917b5158e98e4d7b7e030fb.zip |
ACPI / thermal: fix workqueue destroy order
When the thermal module is to be removed, we should destroy the wq
acpi_thermal_pm_queue after the ACPI driver's remove callback is
executed as we will need to flush the workqueue there, or a NULL pointer
access will be hit.
Reported-and-tested-by: Kui Zhang <kuizhang@gmail.com>
References: http://www.spinics.net/lists/kernel/msg1747251.html
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Aaron Lu <aaron.lu@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/thermal.c')
-rw-r--r-- | drivers/acpi/thermal.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c index c1e31a41f949..25bbc55dca89 100644 --- a/drivers/acpi/thermal.c +++ b/drivers/acpi/thermal.c @@ -1278,8 +1278,8 @@ static int __init acpi_thermal_init(void) static void __exit acpi_thermal_exit(void) { - destroy_workqueue(acpi_thermal_pm_queue); acpi_bus_unregister_driver(&acpi_thermal_driver); + destroy_workqueue(acpi_thermal_pm_queue); return; } |