]> www.infradead.org Git - linux.git/commitdiff
platform/x86: wmi: Call both legacy and WMI driver notify handlers
authorArmin Wolf <W_Armin@gmx.de>
Sun, 1 Sep 2024 03:10:55 +0000 (05:10 +0200)
committerHans de Goede <hdegoede@redhat.com>
Thu, 5 Sep 2024 15:21:59 +0000 (17:21 +0200)
Since the legacy WMI notify handlers are now using the WMI event data
provided by the WMI driver core, they can coexist with modern WMI
driver notify handlers.

Remove the precedence of WMI driver notify handlers and call both
when receiving an event.

Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20240901031055.3030-6-W_Armin@gmx.de
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/wmi.c

index 6b27833ba5d9945d47a1be3a3e139c99e518eba4..3cbe180c3fc0a46662c9faab0c08ab3f09531c46 100644 (file)
@@ -1175,15 +1175,13 @@ static int wmi_notify_device(struct device *dev, void *data)
        }
 
        down_read(&wblock->notify_lock);
-       /* The WMI driver notify handler conflicts with the legacy WMI handler.
-        * Because of this the WMI driver notify handler takes precedence.
-        */
-       if (wblock->dev.dev.driver && wblock->driver_ready) {
+
+       if (wblock->dev.dev.driver && wblock->driver_ready)
                wmi_notify_driver(wblock, obj);
-       } else {
-               if (wblock->handler)
-                       wblock->handler(obj, wblock->handler_data);
-       }
+
+       if (wblock->handler)
+               wblock->handler(obj, wblock->handler_data);
+
        up_read(&wblock->notify_lock);
 
        kfree(obj);