linux/drivers/platform/x86
Armin Wolf baf2f2c2b4
platform/x86: msi-wmi-platform: Workaround a ACPI firmware bug
The ACPI byte code inside the ACPI control method responsible for
handling the WMI method calls uses a global buffer for constructing
the return value, yet the ACPI control method itself is not marked
as "Serialized".
This means that calling WMI methods on this WMI device is not
thread-safe, as concurrent WMI method calls will corrupt the global
buffer.

Fix this by serializing the WMI method calls using a mutex.

Cc: stable@vger.kernel.org # 6.x.x: 912d614ac99e: platform/x86: msi-wmi-platform: Rename "data" variable
Fixes: 9c0beb6b29 ("platform/x86: wmi: Add MSI WMI Platform driver")
Tested-by: Antheas Kapenekakis <lkml@antheas.dev>
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20250414140453.7691-2-W_Armin@gmx.de
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2025-04-16 11:15:22 +03:00
..
amd platform/x86: amd: pmf: Fix STT limits 2025-04-11 12:58:33 +03:00
dell platform/x86: alienware-wmi-wmax: Extend support to more laptops 2025-04-15 17:02:37 +03:00
hp platform/x86: hp-bioscfg: Replace deprecated strncpy() with strscpy() 2025-03-03 14:57:32 +02:00
intel platform/x86: ISST: Correct command storage data length 2025-04-01 14:20:53 +03:00
siemens
x86-android-tablets platform/x86: x86-android-tablets: Add Vexia Edu Atla 10 tablet 5V data 2025-04-11 12:55:32 +03:00
Kconfig platform/x86:lenovo-wmi-hotkey-utilities.c: Support for mic and audio mute LEDs 2025-03-03 15:52:25 +02:00
Makefile platform/x86:lenovo-wmi-hotkey-utilities.c: Support for mic and audio mute LEDs 2025-03-03 15:52:25 +02:00
acer-wireless.c
acer-wmi.c platform/x86: acer-wmi: Fix initialization of last_non_turbo_profile 2025-01-20 14:16:59 +02:00
acerhdf.c
adv_swbutton.c
amilo-rfkill.c
apple-gmux.c
asus-laptop.c asus-laptop: Fix an uninitialized variable 2025-04-11 12:52:57 +03:00
asus-nb-wmi.c Merge branch 'fixes' into 'for-next' 2025-01-21 14:00:38 +02:00
asus-tf103c-dock.c irqdomain: platform/x86: Switch to irq_domain_create_linear() 2025-03-21 17:47:56 +02:00
asus-wireless.c
asus-wmi.c Merge branch 'fixes' into 'for-next' 2025-01-21 14:00:38 +02:00
asus-wmi.h Input: i8042 - Add support for platform filter contexts 2025-01-15 16:26:39 +02:00
barco-p50-gpio.c
classmate-laptop.c
compal-laptop.c platform/x86: compal-laptop: Do not include <linux/fb.h> 2025-02-03 14:59:04 +02:00
dual_accel_detect.h
eeepc-laptop.c
eeepc-wmi.c
firmware_attributes_class.c platform/x86: firmware_attributes_class: Drop lifecycle functions 2025-01-09 13:40:27 +02:00
firmware_attributes_class.h platform/x86: firmware_attributes_class: Drop lifecycle functions 2025-01-09 13:40:27 +02:00
fujitsu-laptop.c fujitsu-laptop: replace strcpy -> strscpy 2024-12-02 19:07:28 +02:00
fujitsu-tablet.c
gigabyte-wmi.c MAINTAINERS: consistently use my dedicated email address 2025-04-01 14:21:02 +03:00
gpd-pocket-fan.c
hdaps.c
huawei-wmi.c
ibm_rtl.c
ideapad-laptop.c platform/x86: ideapad-laptop: use dev_groups to register attribute groups 2025-02-13 14:51:56 +02:00
ideapad-laptop.h
inspur_platform_profile.c ACPI: platform_profile: Remove platform_profile_handler from exported symbols 2025-01-17 19:15:59 +02:00
intel_ips.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
intel_ips.h
intel_scu_ipc.c
intel_scu_ipcutil.c
intel_scu_pcidrv.c
intel_scu_pltdrv.c
intel_scu_wdt.c
lenovo-wmi-camera.c platform/x86: lenovo-wmi-camera: Use SW_CAMERA_LENS_COVER instead of KEY_CAMERA_ACESS 2025-01-15 16:38:37 +02:00
lenovo-wmi-hotkey-utilities.c platform/x86:lenovo-wmi-hotkey-utilities.c: Support for mic and audio mute LEDs 2025-03-03 15:52:25 +02:00
lenovo-ymc.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
lenovo-yoga-tab2-pro-1380-fastcharger.c platform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: Make symbol static 2025-03-05 13:57:10 +02:00
lenovo-yogabook.c
lg-laptop.c
meegopad_anx7428.c
meraki-mx100.c
msi-ec.c
msi-ec.h
msi-laptop.c Input: i8042 - Add support for platform filter contexts 2025-01-15 16:26:39 +02:00
msi-wmi-platform.c platform/x86: msi-wmi-platform: Workaround a ACPI firmware bug 2025-04-16 11:15:22 +03:00
msi-wmi.c
mxm-wmi.c
nvidia-wmi-ec-backlight.c
p2sb.c p2sb: Do not scan and remove the P2SB device when it is unhidden 2024-12-10 16:24:51 +02:00
panasonic-laptop.c Input: i8042 - Add support for platform filter contexts 2025-01-15 16:26:39 +02:00
pcengines-apuv2.c
pmc_atom.c
quickstart.c platform/x86: quickstart: don't include 'pm_wakeup.h' directly 2024-12-02 11:05:54 +02:00
samsung-galaxybook.c platform/x86: samsung-galaxybook: Fix block_recording not supported logic 2025-03-05 14:13:34 +02:00
samsung-laptop.c platform/x86: samsung-laptop: Match MODULE_DESCRIPTION() to functionality 2024-12-02 18:41:08 +02:00
samsung-q10.c
sel3350-platform.c
serdev_helpers.h platform/x86: serdev_helpers: Add get_serdev_controller_from_parent() helper 2024-12-10 15:17:48 +02:00
serial-multi-instantiate.c ALSA: hda/tas2781: Add tas2781 hda SPI driver 2025-01-17 11:08:43 +01:00
silicom-platform.c
sony-laptop.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
system76_acpi.c
think-lmi.c platform/x86: think-lmi: Use WMI bus API when accessing BIOS settings 2025-02-24 13:19:16 +02:00
think-lmi.h platform/x86: think-lmi: Use WMI bus API when accessing BIOS settings 2025-02-24 13:19:16 +02:00
thinkpad_acpi.c platform/x86: thinkpad_acpi: disable ACPI fan access for T495* and E560 2025-04-01 14:20:34 +03:00
topstar-laptop.c
toshiba-wmi.c
toshiba_acpi.c Input: i8042 - Add support for platform filter contexts 2025-01-15 16:26:39 +02:00
toshiba_bluetooth.c
toshiba_haps.c
touchscreen_dmi.c platform/x86: touchscreen_dmi: Add info for SARY Tab 3 tablet 2024-12-11 15:58:35 +02:00
uv_sysfs.c
winmate-fm07-keys.c
wireless-hotkey.c
wmi-bmof.c platform/x86: wmi-bmof: Make use of .bin_size() callback 2024-12-17 13:13:10 +02:00
wmi.c platform/x86: wmi: Call WCxx methods when setting data blocks 2025-02-24 13:30:15 +02:00
xiaomi-wmi.c
xo1-rfkill.c
xo15-ebook.c