platform/x86: wmi: Decouple legacy WMI notify handlers from wmi_block_list
authorArmin Wolf <W_Armin@gmx.de>
Wed, 3 Jan 2024 19:27:06 +0000 (20:27 +0100)
committerHans de Goede <hdegoede@redhat.com>
Mon, 22 Jan 2024 10:34:30 +0000 (11:34 +0100)
commit3ea7f59af8ffa17ce5f5173d6f4bfbc73334187d
tree2d22b845f518be136f3572cf52f3b5fcfde2894f
parent3d8a29fec2cb96b3aa75a595f20c4b73ff294a97
platform/x86: wmi: Decouple legacy WMI notify handlers from wmi_block_list

Until now, legacy WMI notify handler functions where using the
wmi_block_list, which did no refcounting on the returned WMI device.
This meant that the WMI device could disappear at any moment,
potentially leading to various errors.
Fix this by using bus_find_device() which returns an actual
reference to the found WMI device.

Tested on a Dell Inspiron 3505 and a Acer Aspire E1-731.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20240103192707.115512-4-W_Armin@gmx.de
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/wmi.c