hwmon: (occ) Lock mutex in shutdown to prevent race with occ_active

Unbinding the driver or removing the parent device at the same time
as using the OCC active sysfs file can cause the driver to unregister
the hwmon device twice. Prevent this by locking the occ mutex in the
shutdown function.

Signed-off-by: Eddie James <eajames@linux.ibm.com>
Link: https://lore.kernel.org/r/20220606185455.21126-1-eajames@linux.ibm.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Eddie James 2022-06-06 13:54:55 -05:00 коммит произвёл Guenter Roeck
Родитель 5e3f89ad8e
Коммит ac6888ac5a
1 изменённых файлов: 5 добавлений и 0 удалений

Просмотреть файл

@ -1228,10 +1228,15 @@ EXPORT_SYMBOL_GPL(occ_setup);
void occ_shutdown(struct occ *occ)
{
mutex_lock(&occ->lock);
occ_shutdown_sysfs(occ);
if (occ->hwmon)
hwmon_device_unregister(occ->hwmon);
occ->hwmon = NULL;
mutex_unlock(&occ->lock);
}
EXPORT_SYMBOL_GPL(occ_shutdown);