kernel_optimize_test/drivers/mfd
Thomas Gleixner e3beca48a4 irqdomain/treewide: Keep firmware node unconditionally allocated
Quite some non OF/ACPI users of irqdomains allocate firmware nodes of type
IRQCHIP_FWNODE_NAMED or IRQCHIP_FWNODE_NAMED_ID and free them right after
creating the irqdomain. The only purpose of these FW nodes is to convey
name information. When this was introduced the core code did not store the
pointer to the node in the irqdomain. A recent change stored the firmware
node pointer in irqdomain for other reasons and missed to notice that the
usage sites which do the alloc_fwnode/create_domain/free_fwnode sequence
are broken by this. Storing a dangling pointer is dangerous itself, but in
case that the domain is destroyed later on this leads to a double free.

Remove the freeing of the firmware node after creating the irqdomain from
all affected call sites to cure this.

Fixes: 711419e504 ("irqdomain: Add the missing assignment of domain->fwnode for named fwnode")
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/873661qakd.fsf@nanos.tec.linutronix.de
2020-07-14 17:44:42 +02:00
..
88pm80x.c
88pm800.c
88pm805.c
88pm860x-core.c
88pm860x-i2c.c
aat2870-core.c mfd: aat2870: Use scnprintf() for avoiding potential buffer overflow 2020-03-30 07:35:28 +01:00
ab3100-core.c
ab3100-otp.c
ab8500-core.c
ab8500-debugfs.c
ab8500-sysctrl.c
abx500-core.c
ac100.c
act8945a.c
adp5520.c
altera-a10sr.c
altera-sysmgr.c
arizona-core.c
arizona-i2c.c
arizona-irq.c
arizona-spi.c
arizona.h
as3711.c
as3722.c
asic3.c
at91-usart.c
atmel-flexcom.c
atmel-hlcdc.c
atmel-smc.c
axp20x-i2c.c
axp20x-rsb.c
axp20x.c
bcm590xx.c
bcm2835-pm.c
bd9571mwv.c
cros_ec_dev.c mfd: cros_ec: Check DT node for usbpd-notify add 2020-03-30 07:34:56 +01:00
cs47l15-tables.c
cs47l24-tables.c
cs47l35-tables.c
cs47l85-tables.c
cs47l90-tables.c
cs47l92-tables.c
cs5535-mfd.c
da903x.c
da9052-core.c
da9052-i2c.c
da9052-irq.c
da9052-spi.c
da9055-core.c
da9055-i2c.c
da9062-core.c mfd: da9062: Add support for interrupt polarity defined in device tree 2020-03-30 07:35:28 +01:00
da9063-core.c
da9063-i2c.c
da9063-irq.c
da9150-core.c
davinci_voicecodec.c
db8500-prcmu.c
dbx500-prcmu-regs.h
dln2.c mfd: dln2: Allow to be enumerated via ACPI 2020-03-30 07:35:28 +01:00
dm355evm_msp.c
exynos-lpass.c
ezx-pcap.c
fsl-imx25-tsadc.c
gateworks-gsc.c mfd: Add Gateworks System Controller core driver 2020-05-20 10:28:57 +01:00
hi655x-pmic.c
hi6421-pmic-core.c
htc-i2cpld.c mfd: htc-i2cpld: Convert to use i2c_new_client_device() 2020-05-26 10:51:19 +01:00
htc-pasic3.c
intel_msic.c
intel_pmc_bxt.c platform/x86: intel_pmc_ipc: Convert to MFD 2020-04-24 11:18:44 +01:00
intel_quark_i2c_gpio.c gpio: dwapb: Remove unneeded has_irq member in struct dwapb_port_property 2020-05-25 11:05:09 +02:00
intel_soc_pmic_bxtwc.c mfd: intel_soc_pmic_bxtwc: Convert to use new SCU IPC API 2020-04-24 11:17:58 +01:00
intel_soc_pmic_chtdc_ti.c
intel_soc_pmic_chtwc.c
intel_soc_pmic_core.c
intel_soc_pmic_core.h
intel_soc_pmic_crc.c
intel_soc_pmic_mrfld.c mfd: intel_soc_pmic_mrfld: Convert to use new SCU IPC API 2020-04-24 11:18:03 +01:00
intel-lpss-acpi.c
intel-lpss-pci.c mfd: intel-lpss: Update LPSS UART #2 PCI ID for Jasper Lake 2020-05-26 10:51:20 +01:00
intel-lpss.c
intel-lpss.h
ioc3.c irqdomain/treewide: Keep firmware node unconditionally allocated 2020-07-14 17:44:42 +02:00
ipaq-micro.c
iqs62x.c
janz-cmodio.c
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
kempld-core.c
lm3533-core.c
lm3533-ctrlbank.c
lochnagar-i2c.c
lp873x.c
lp3943.c
lp8788-irq.c
lp8788.c
lp87565.c
lpc_ich.c
lpc_sch.c
madera-core.c
madera-i2c.c
madera-spi.c
madera.h
Makefile mfd: Add support for PMIC MT6360 2020-05-27 07:46:18 +01:00
max8907.c
max8925-core.c
max8925-i2c.c
max8997-irq.c
max8997.c
max8998-irq.c
max8998.c
max14577.c
max77620.c mfd: max77620: Use single-byte writes on MAX77620 2020-05-26 10:51:21 +01:00
max77650.c
max77686.c
max77693.c
max77843.c
mc13xxx-core.c
mc13xxx-i2c.c
mc13xxx-spi.c
mc13xxx.h
mcp-core.c
mcp-sa11x0.c
menelaus.c
menf21bmc.c
mfd-core.c
motorola-cpcap.c
mp2629.c mfd: mp2629: Add support for mps battery charger 2020-05-26 10:41:40 +01:00
mt6358-irq.c mfd: Add support for the MediaTek MT6358 PMIC 2020-05-21 08:55:29 +01:00
mt6360-core.c mfd: mt6360: Fix register driver NULL pointer by adding driver name 2020-06-16 09:32:43 +01:00
mt6397-core.c mfd: Add support for the MediaTek MT6358 PMIC 2020-05-21 08:55:29 +01:00
mt6397-irq.c mfd: mt6397: Modify suspend/resume behavior 2020-05-21 08:54:40 +01:00
mxs-lradc.c
omap-usb-host.c mfd: omap: Remove useless cast for driver.name 2020-03-30 07:35:27 +01:00
omap-usb-tll.c mfd: omap: Remove useless cast for driver.name 2020-03-30 07:35:27 +01:00
omap-usb.h
palmas.c
pcf50633-adc.c
pcf50633-core.c
pcf50633-gpio.c
pcf50633-irq.c
qcom_rpm.c
qcom-pm8xxx.c mfd: pm8xxx: Replace zero-length array with flexible-array member 2020-03-30 07:34:57 +01:00
qcom-spmi-pmic.c
rave-sp.c
rc5t583-irq.c
rc5t583.c
rdc321x-southbridge.c
retu-mfd.c
rk808.c mfd: rk808: Convert RK805 to shutdown/suspend hooks 2020-03-30 07:35:28 +01:00
rn5t618.c mfd: rn5t618: Cleanup i2c_device_id 2020-03-27 09:42:44 +00:00
rohm-bd718x7.c
rohm-bd70528.c
rohm-bd71828.c
rt5033.c
sec-core.c
sec-irq.c
si476x-cmd.c
si476x-i2c.c
si476x-prop.c
sky81452.c
sm501.c mfd: sm501: Use GPIO_LOOKUP_IDX() helper macro 2020-05-18 10:12:41 +02:00
smsc-ece1099.c
sprd-sc27xx-spi.c mfd: sprd: Remove unnecessary spi_bus_type setting 2020-05-26 10:51:20 +01:00
ssbi.c
sta2x11-mfd.c
stm32-lptimer.c
stm32-timers.c mfd: stm32-timers: Use dma_request_chan() instead dma_request_slave_channel() 2020-05-26 10:51:20 +01:00
stmfx.c mfd: stmfx: Disable IRQ in suspend to avoid spurious interrupt 2020-05-26 10:51:21 +01:00
stmpe-i2c.c
stmpe-spi.c
stmpe.c
stmpe.h
stpmic1.c mfd: stpmic1: Make stpmic1_regmap_config static 2020-05-26 10:51:20 +01:00
stw481x.c
sun4i-gpadc.c
sun6i-prcm.c
syscon.c
t7l66xb.c
tc3589x.c
tc6387xb.c
tc6393xb.c
ti_am335x_tscadc.c
ti-lmu.c
timberdale.c
timberdale.h
tmio_core.c
tps6105x.c
tps6507x.c
tps6586x.c
tps65010.c
tps65086.c
tps65090.c
tps65217.c
tps65218.c
tps65910.c
tps65911-comparator.c
tps65912-core.c
tps65912-i2c.c
tps65912-spi.c
tps68470.c
tps80031.c
tqmx86.c mfd: tqmx86: Fix a typo in MODULE_DESCRIPTION 2020-05-26 10:51:20 +01:00
twl-core.c
twl-core.h
twl4030-audio.c
twl4030-irq.c
twl4030-power.c
twl6030-irq.c
twl6040.c
ucb1x00-assabet.c
ucb1x00-core.c
ucb1x00-ts.c
ucb1400_core.c
vexpress-sysreg.c vexpress: Move setting master site to vexpress-config bus 2020-05-13 12:42:46 -05:00
viperboard.c
vx855.c
wcd934x.c mfd: wcd934x: Drop kfree for memory allocated with devm_kzalloc 2020-05-26 10:51:21 +01:00
wl1273-core.c
wm97xx-core.c
wm831x-auxadc.c
wm831x-core.c
wm831x-i2c.c
wm831x-irq.c
wm831x-otp.c
wm831x-spi.c
wm5102-tables.c
wm5110-tables.c
wm8350-core.c
wm8350-gpio.c
wm8350-i2c.c
wm8350-irq.c
wm8350-regmap.c
wm8400-core.c
wm8994-core.c mfd: wm8994: Silence warning about supplies during deferred probe 2020-05-26 10:51:20 +01:00
wm8994-irq.c
wm8994-regmap.c
wm8994.h
wm8997-tables.c
wm8998-tables.c