mirror-linux/include/linux/platform_data
Qiu Wenbo f0f7a3f542
platform/x86: int3472: Fix double free of GPIO device during unregister
regulator_unregister() already frees the associated GPIO device. On
ThinkPad X9 (Lunar Lake), this causes a double free issue that leads to
random failures when other drivers (typically Intel THC) attempt to
allocate interrupts. The root cause is that the reference count of the
pinctrl_intel_platform module unexpectedly drops to zero when this
driver defers its probe.

This behavior can also be reproduced by unloading the module directly.

Fix the issue by removing the redundant release of the GPIO device
during regulator unregistration.

Cc: stable@vger.kernel.org
Fixes: 1e5d088a52 ("platform/x86: int3472: Stop using devm_gpiod_get()")
Signed-off-by: Qiu Wenbo <qiuwenbo@kylinsec.com.cn>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Hans de Goede <hansg@kernel.org>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
Link: https://patch.msgid.link/20251028063009.289414-1-qiuwenbo@gnome.org
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2025-10-28 17:06:14 +02:00
..
gpio
media media: staging: drop omap4iss 2024-10-08 13:43:47 +02:00
txx9
x86 platform/x86: int3472: Fix double free of GPIO device during unregister 2025-10-28 17:06:14 +02:00
ad5761.h
ad7266.h
ad7791.h
ad7793.h
ad7887.h
adau17x1.h
adp8860.h
adp8870.h
ads7828.h
amd_qdma.h dmaengine: amd: qdma: Remove using the private get and set dma_ops APIs 2024-12-04 18:27:32 +05:30
amd_xdma.h
ams-delta-fiq.h
apds990x.h
arm-ux500-pm.h
asoc-imx-ssi.h
asoc-kirkwood.h
asoc-pxa.h
asoc-s3c.h ASoC: samsung: Remove obsoleted declaration for s3c64xx_ac97_setup_gpio 2024-09-30 12:47:23 +02:00
asoc-ti-mcbsp.h
ata-pxa.h
atmel.h
b53.h
bcm7038_wdt.h
bcmgenet.h
bd6107.h
bh1770glc.h
brcmfmac.h
brcmnand.h
clk-da8xx-cfgchip.h
clk-fch.h
cpuidle-exynos.h
cros_ec_chardev.h
cros_ec_commands.h platform/chrome: update pwm fan control host commands 2025-09-25 08:08:13 -07:00
cros_ec_proto.h platform/chrome: cros_ec: Add a flag to track registration state 2025-09-14 11:34:41 +08:00
cros_ec_sensorhub.h
cros_usbpd_notify.h
crypto-ux500.h
davinci-cpufreq.h
davinci_asp.h ASoC: ti: davinci-i2s: Remove the unused clk_input_pin attribute 2024-04-09 16:58:34 +01:00
dma-dw.h
dma-hsu.h
dma-iop32x.h
dma-mcf-edma.h
dma-mv_xor.h
dmtimer-omap.h clocksource/drivers/timer-ti-dm : Capture functionality for OMAP DM timer 2025-09-23 12:32:40 +02:00
ds620.h
dsa.h
edma.h
elm.h
emc2305.h hwmon: (emc2305) Add support for PWM frequency, polarity and output 2025-07-20 16:38:34 -07:00
emif_plat.h
g762.h
gpio-htc-egpio.h
gpio-omap.h
gpio_backlight.h
gpmc-omap.h
gsc_hwmon.h
hirschmann-hellcreek.h
hsmmc-omap.h
huawei-gaokun-ec.h platform: arm64: add Huawei Matebook E Go EC driver 2025-03-03 10:55:36 +02:00
hwmon-s3c.h ARM: samsung: Remove obsoleted declaration for s3c_hwmon_set_platdata 2024-09-30 12:47:11 +02:00
i2c-gpio.h
i2c-imx.h
i2c-mux-gpio.h i2c: mux: gpio: Add support for the 'settle-time-us' property 2024-07-20 03:07:55 +02:00
i2c-mux-reg.h
i2c-ocores.h
i2c-omap.h
i2c-pca-platform.h
i2c-pxa.h
i2c-s3c2410.h
i2c-xiic.h
ina2xx.h
invensense_mpu6050.h
iommu-omap.h
isl9305.h
itco_wdt.h
keypad-omap.h
lcd-mipid.h
leds-lm355x.h
leds-lm3642.h
leds-lp55xx.h
lenovo-yoga-c630.h platform: arm64: add Lenovo Yoga C630 WOS EC driver 2024-06-14 12:51:30 +03:00
lm3630a_bl.h
lm3639_bl.h
lm8323.h
lp855x.h
lp8727.h
lp8755.h
ltc4245.h
lv5207lp.h
max197.h
max732x.h
max3421-hcd.h
mdio-bcm-unimac.h
mdio-gpio.h
mfd-mcp-sa11x0.h
microchip-ksz.h net: dsa: microchip: Add KSZ8463 switch support to KSZ DSA driver 2025-07-25 17:01:56 -07:00
mlxcpld.h
mlxreg.h platform/mellanox: Rename field to improve code readability 2025-04-15 17:14:30 +03:00
mmc-davinci.h
mmc-esdhc-mcf.h
mmc-mxcmmc.h
mmc-omap.h
mmc-pxamci.h ARM: spitz: Use software nodes to describe MMC GPIOs 2024-07-09 15:21:15 +02:00
mmc-sdhci-s3c.h
mmp_dma.h
mtd-nand-omap2.h
mtd-nand-pxa3xx.h
mtd-orion_nand.h
mv88e6xxx.h
mv_usb.h
net-cw1200.h
omap-twl4030.h
omap-wd-timer.h
omap1_bl.h backlight: omap1: Remove unused struct omap_backlight_config.set_power 2024-03-28 10:12:49 +00:00
omapdss.h
pca953x.h
phy-da8xx-usb.h
pinctrl-single.h
pm33xx.h
pxa2xx_udc.h
pxa_sdhci.h
regulator-haptic.h
s3c-hsotg.h
sa11x0-serial.h serial: clean up uart_info 2024-10-11 08:14:32 +02:00
sc18is602.h
sdhci-pic32.h
serial-omap.h
serial-sccnxp.h
sgi-w1.h
sh_mmcif.h
shmob_drm.h
shtc1.h
si5351.h
simplefb.h
spi-davinci.h
spi-mt65xx.h
spi-omap2-mcspi.h spi: spi-omap2-mcspi.c: revert "Toggle CS after each word" 2024-03-28 15:52:31 +00:00
spi-s3c64xx.h
st_sensors_pdata.h
tda9950.h
ti-prm.h
ti-sysc.h bus: ti-sysc: Drop legacy idle quirk handling 2024-04-25 07:29:41 +03:00
tmio.h mmc: tmio: Add 64-bit read/write support for SD_BUF0 in polling mode 2025-08-19 14:34:14 +02:00
tps68470.h
tsc2007.h
tsl2772.h
uio_dmem_genirq.h
usb-davinci.h
usb-ehci-orion.h
usb-musb-ux500.h
usb-ohci-pxa27x.h
usb-ohci-s3c2410.h
usb-omap.h
usb-omap1.h
usb3503.h
video-ep93xx.h
video-pxafb.h fbdev/pxafb: Unexport symbol 2025-06-16 09:08:05 +02:00
video_s3c.h
voltage-omap.h
wilco-ec.h
wiznet.h
wkup_m3.h
xilinx-ll-temac.h
xtalk-bridge.h