platform/x86: thinkpad_acpi: take mutex for hotkey_mask_{set,get}
authorThomas Weißschuh <linux@weissschuh.net>
Tue, 4 Jul 2023 21:03:17 +0000 (23:03 +0200)
committerHans de Goede <hdegoede@redhat.com>
Wed, 12 Jul 2023 15:48:08 +0000 (17:48 +0200)
hotkey_mask_set() and hotkey_mask_get() expect hotkey_mutex to be held.
While it should not matter during initialization a following patch will
enable lockdep for hotkey_mutex which would produce warnings here.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/r/20230704-thinkpad_acpi-lockdep-v1-1-60129548a738@weissschuh.net
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/thinkpad_acpi.c

index 187018f..b796e65 100644 (file)
@@ -3478,7 +3478,9 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
        if (tp_features.hotkey_mask) {
                /* hotkey_source_mask *must* be zero for
                 * the first hotkey_mask_get to return hotkey_orig_mask */
+               mutex_lock(&hotkey_mutex);
                res = hotkey_mask_get();
+               mutex_unlock(&hotkey_mutex);
                if (res)
                        return res;
 
@@ -3577,9 +3579,11 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
                hotkey_exit();
                return res;
        }
+       mutex_lock(&hotkey_mutex);
        res = hotkey_mask_set(((hotkey_all_mask & ~hotkey_reserved_mask)
                               | hotkey_driver_mask)
                              & ~hotkey_source_mask);
+       mutex_unlock(&hotkey_mutex);
        if (res < 0 && res != -ENXIO) {
                hotkey_exit();
                return res;