android_kernel_xiaomi_sm8450/drivers/platform/x86
Armin Wolf d426a2955e platform/x86: wmi: Fix opening of char device
[ Upstream commit eba9ac7abab91c8f6d351460239108bef5e7a0b6 ]

Since commit fa1f68db6c ("drivers: misc: pass miscdevice pointer via
file private data"), the miscdevice stores a pointer to itself inside
filp->private_data, which means that private_data will not be NULL when
wmi_char_open() is called. This might cause memory corruption should
wmi_char_open() be unable to find its driver, something which can
happen when the associated WMI device is deleted in wmi_free_devices().

Fix the problem by using the miscdevice pointer to retrieve the WMI
device data associated with a char device using container_of(). This
also avoids wmi_char_open() picking a wrong WMI device bound to a
driver with the same name as the original driver.

Fixes: 44b6b76611 ("platform/x86: wmi: create userspace interface for drivers")
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20231020211005.38216-5-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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-11-20 11:06:48 +01:00
..
intel_speed_select_if platform/x86: ISST: Fix possible circular locking dependency detected 2022-02-23 12:00:58 +01:00
acer-wireless.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
acer-wmi.c platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 (SW5-017) 2022-12-02 17:40:05 +01:00
acerhdf.c - Add support to enable/disable the thermal zones resulting on core code and 2020-08-06 18:10:55 -07:00
alienware-wmi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
amilo-rfkill.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
apple-gmux.c platform/x86: apple-gmux: use resource_size() with res 2022-01-05 12:40:29 +01:00
asus-laptop.c platform/x86: asus-laptop: Drop duplicate check for led_classdev_unregister() 2020-05-07 19:37:23 +03:00
asus-nb-wmi.c platform/x86: asus-wmi: Map 0x2a code, Ignore 0x2b and 0x2c events 2023-10-25 11:54:25 +02:00
asus-wireless.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
asus-wmi.c platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr() 2022-12-02 17:40:05 +01:00
asus-wmi.h platform/x86: asus-wmi: Change ASUS_WMI_BRN_DOWN code from 0x20 to 0x2e 2023-10-25 11:54:25 +02:00
classmate-laptop.c platform/x86: classmate-laptop: remove unused variable 2019-10-15 10:55:10 +03:00
compal-laptop.c platform/x86: compal-laptop: Initialize "value" in ec_read_u8() 2019-09-07 21:16:09 +03:00
dcdbas.c platform/x86: dcdbas: Check SMBIOS for protected buffer address 2020-06-01 12:27:25 +03:00
dcdbas.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 287 2019-06-05 17:36:37 +02:00
dell_rbu.c platform/x86: dell_rbu: Unify format of the printed messages 2020-02-10 17:47:38 +02:00
dell-laptop.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
dell-rbtn.c change email address for Pali Rohár 2020-04-10 15:36:22 -07:00
dell-rbtn.h change email address for Pali Rohár 2020-04-10 15:36:22 -07:00
dell-smbios-base.c platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init 2020-12-30 11:53:28 +01:00
dell-smbios-smm.c change email address for Pali Rohár 2020-04-10 15:36:22 -07:00
dell-smbios-wmi.c platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from run_smbios_call 2021-09-18 13:40:15 +02:00
dell-smbios.h change email address for Pali Rohár 2020-04-10 15:36:22 -07:00
dell-smo8800.c change email address for Pali Rohár 2020-04-10 15:36:22 -07:00
dell-wmi-aio.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
dell-wmi-descriptor.c platform-drivers-x86 for v5.3-1 2019-07-14 16:51:47 -07:00
dell-wmi-descriptor.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
dell-wmi-led.c
dell-wmi.c platform/x86: dell-wmi: Add a keymap for KEY_MUTE in type 0x0010 table 2023-02-15 17:22:15 +01:00
eeepc-laptop.c platform/x86: eeepc-laptop: Drop duplicate check for led_classdev_unregister() 2020-05-07 19:39:32 +03:00
eeepc-wmi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
fujitsu-laptop.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
fujitsu-tablet.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 414 2019-06-05 17:37:14 +02:00
gpd-pocket-fan.c platform/x86: GPD pocket fan: Fix error message when temp-limits are out of range 2020-03-20 14:44:47 +02:00
hdaps.c treewide: Remove uninitialized_var() usage 2020-07-16 12:35:15 -07:00
hp_accel.c platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()' 2021-11-26 10:39:16 +01:00
hp-wireless.c platform/x86: hp-wireless: add AMD's hardware id to the supported list 2021-06-03 09:00:44 +02:00
hp-wmi.c platform/x86: hp-wmi: Ignore Smart Experience App event 2022-12-02 17:40:05 +01:00
huawei-wmi.c platform/x86: huawei-wmi: Silence ambient light sensor 2023-09-19 12:20:05 +02:00
i2c-multi-instantiate.c platform/x86: i2c-multi-instantiate: Don't create platform device for INT3515 ACPI nodes 2021-01-27 11:54:51 +01:00
ibm_rtl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
ideapad-laptop.c platform/x86: ideapad-laptop: Disable touchpad_switch for ELAN0634 2021-01-27 11:54:51 +01:00
intel_atomisp2_led.c platform/x86: Add new intel_atomisp2_led driver 2020-07-09 22:47:27 +03:00
intel_atomisp2_pm.c platform/x86: intel_atomisp2_pm: Spelling fixes 2020-01-10 11:57:22 +02:00
intel_bxtwc_tmu.c platform/x86: intel_bxtwc_tmu: Remove dev_err() usage after platform_get_irq() 2019-08-01 18:03:02 +03:00
intel_cht_int33fe_common.c platform/x86: intel_cht_int33fe: Drop double check for ACPI companion device 2020-07-09 22:40:36 +03:00
intel_cht_int33fe_common.h platform/x86: intel_cht_int33fe: Split code to Micro-B and Type-C 2019-10-15 10:55:10 +03:00
intel_cht_int33fe_microb.c platform/x86: intel_cht_int33fe: Split code to Micro-B and Type-C 2019-10-15 10:55:10 +03:00
intel_cht_int33fe_typec.c platform/x86: intel_cht_int33fe: Fix spelling issues 2020-04-20 14:47:45 +03:00
intel_chtdc_ti_pwrbtn.c
intel_int0002_vgpio.c platform/x86: intel_int0002_vgpio: Only call enable_irq_wake() when using s2idle 2021-05-26 12:06:49 +02:00
intel_ips.c
intel_ips.h platform/x86: intel-ips: Use the correct style for SPDX License Identifier 2020-01-10 11:57:21 +02:00
intel_menlow.c platform/x86: intel_menlow: switch to use <linux/units.h> helpers 2020-01-31 10:30:40 -08:00
intel_mid_powerbtn.c platform/x86: intel_mid_powerbtn: Convert to use new SCU IPC API 2020-04-24 11:17:32 +01:00
intel_mid_thermal.c thermal: Explicitly enable non-changing thermal zone devices 2020-06-29 20:26:37 +02:00
intel_mrfld_pwrbtn.c
intel_oaktrail.c platform/x86: intel_oaktrail: Use pr_warn instead of pr_warning 2019-10-18 15:01:35 +02:00
intel_pmc_core_pltdrv.c platform/x86/intel: pmc: Don't unconditionally attach Intel PMC when virtualized 2022-11-25 17:45:47 +01:00
intel_pmc_core.c platform/x86: intel_pmc_core: Don't use global pmcdev in quirks 2021-05-11 14:47:21 +02:00
intel_pmc_core.h platform/x86: intel_pmc_core: Fix the slp_s0 counter displayed value 2020-10-07 23:06:29 +02:00
intel_punit_ipc.c platform/x86/intel: punit_ipc: Drop wrong use of ACPI_PTR() 2021-09-30 10:11:01 +02:00
intel_scu_ipc.c platform/x86: intel_scu_ipc: Fail IPC send if still busy 2023-10-10 21:53:27 +02:00
intel_scu_ipcutil.c platform/x86: intel_scu_ipcutil: Convert to use new SCU IPC API 2020-04-24 11:17:41 +01:00
intel_scu_pcidrv.c platform/x86: intel_pmc_ipc: Move PCI IDs to intel_scu_pcidrv.c 2020-04-24 11:18:25 +01:00
intel_scu_pltdrv.c platform/x86: Add Elkhart Lake SCU/PMC support 2020-05-05 20:26:16 +03:00
intel_telemetry_core.c platform/x86: intel_telemetry: Add telemetry_get_pltdata() 2020-04-24 11:18:30 +01:00
intel_telemetry_debugfs.c platform/x86: intel_pmc_ipc: Convert to MFD 2020-04-24 11:18:44 +01:00
intel_telemetry_pltdrv.c platform/x86: intel_pmc_ipc: Convert to MFD 2020-04-24 11:18:44 +01:00
intel_turbo_max_3.c platform/x86: Convert to new CPU match macros 2020-03-24 21:33:00 +01:00
intel-hid.c platform/x86: intel: hid: Always call BTNL ACPI method 2023-09-19 12:20:05 +02:00
intel-rst.c
intel-smartconnect.c
intel-uncore-frequency.c platform/x86/intel-uncore-freq: make uncore_root_kobj static 2020-04-17 16:48:06 +03:00
intel-vbtn.c platform/x86: intel-vbtn: Stop reporting SW_DOCK events 2021-03-30 14:31:53 +02:00
intel-wmi-sbl-fw-update.c platform/x86: Add Slim Bootloader firmware update signaling driver 2020-05-05 20:27:44 +03:00
intel-wmi-thunderbolt.c platform/x86: wmi: add context argument to the probe function 2019-06-17 15:22:47 +03:00
Kconfig platform: x86: MLX_PLATFORM: select REGMAP instead of depending on it 2023-03-17 08:45:12 +01:00
lg-laptop.c platform/x86: lg-laptop: Drop duplicate check for led_classdev_unregister() 2020-05-07 20:14:17 +03:00
Makefile platform/x86: Add new intel_atomisp2_led driver 2020-07-09 22:47:27 +03:00
mlx-platform.c platform/x86: mlx-platform: remove an unused variable 2020-12-30 11:54:19 +01:00
msi-laptop.c platform/x86: msi-laptop: Fix rfkill out-of-sync on MSI Wind U100 2023-08-11 11:57:36 +02:00
msi-wmi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
mxm-wmi.c platform/x86: mxm-wmi: fix memleak in mxm_wmi_call_mx[ds|mx]() 2023-01-14 10:15:21 +01:00
panasonic-laptop.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 392 2019-06-05 17:37:11 +02:00
pcengines-apuv2.c platform/x86: pcengines-apuv2: Add missing terminating entries to gpio-lookup tables 2021-08-18 08:59:09 +02:00
peaq-wmi.c platform/x86: peaq-wmi: switch to using polled mode of input devices 2019-10-15 10:55:09 +03:00
pmc_atom.c platform/x86: pmc_atom: Fix SLP_TYPx bitfield mask 2022-09-08 11:11:36 +02:00
samsung-laptop.c platform/x86: samsung-laptop: Fix an unsigned comparison which can never be negative 2022-04-27 13:53:53 +02:00
samsung-q10.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
sony-laptop.c platform/x86: sony-laptop: Don't turn off 0x153 keyboard backlight during probe 2023-01-18 11:44:54 +01:00
surface3_button.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
surface3_power.c surface: surface3_power: Fix battery readings on batteries without a serial number 2022-03-02 11:42:51 +01:00
surface3-wmi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
surfacepro3_button.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
system76_acpi.c platform/x86: system76-acpi: Fix brightness_set schedule while atomic 2020-07-09 22:40:36 +03:00
tc1100-wmi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
thinkpad_acpi.c platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep 2021-12-08 09:03:19 +01:00
topstar-laptop.c
toshiba_acpi.c platform/x86: toshiba_acpi: Fix missing error code in toshiba_acpi_setup_keyboard() 2021-07-14 16:56:00 +02:00
toshiba_bluetooth.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
toshiba_haps.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
toshiba-wmi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
touchscreen_dmi.c platform/x86: touchscreen_dmi: Add info for the Positivo C4128B 2023-10-25 11:54:24 +02:00
wmi-bmof.c platform-drivers-x86 for v5.3-1 2019-07-14 16:51:47 -07:00
wmi.c platform/x86: wmi: Fix opening of char device 2023-11-20 11:06:48 +01:00
xiaomi-wmi.c platform/x86: wmi: Make two functions static 2020-04-17 16:47:26 +03:00
xo1-rfkill.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
xo15-ebook.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00