Sinan Kaya
107b7d9fa9
mfd: rtsx: Release IRQ during shutdown
...
'Commit cc27b735ad ("PCI/portdrv: Turn off PCIe services during
shutdown")' revealed a resource leak in rtsx_pci driver during shutdown.
Issue shows up as a warning during shutdown as follows:
remove_proc_entry: removing non-empty directory 'irq/17', leaking at least
'rtsx_pci'
WARNING: CPU: 0 PID: 1578 at fs/proc/generic.c:572
remove_proc_entry+0x11d/0x130
Modules linked in <long list but none that are out-of-tree>
...
Call Trace:
unregister_irq_proc
free_desc
irq_free_descs
mp_unmap_irq
acpi_unregister_gsi_apic
acpi_pci_irq_disable
do_pci_disable_device
pci_disable_device
device_shutdown
kernel_restart
Sys_reboot
Even though rtsx_pci driver implements a shutdown callback, it is not
releasing the interrupt that it registered during probe. This is causing
the ACPI layer to complain that the shared IRQ is in use while freeing
IRQ.
This code releases the IRQ to prevent resource leak and eliminate the
warning.
Fixes: cc27b735ad ("PCI/portdrv: Turn off PCIe services during shutdown")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=198141
Reported-by: Chris Clayton <chris2553@googlemail.com>
Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2018-01-05 11:14:57 +00:00
..
88pm80x.c
mfd: Use to_i2c_client() instead of open-coding it
2016-01-14 08:43:50 +00:00
88pm800.c
88pm805.c
88pm860x-core.c
mfd: 88pm860x: Move over to new I2C device .probe() call
2016-11-17 16:10:24 +01:00
88pm860x-i2c.c
aat2870-core.c
mfd: aat2870-core: Remove unnecessary 'out of memory' message
2016-01-14 08:43:52 +00:00
ab3100-core.c
mfd: ab3100-core: Make it explicitly non-modular
2016-11-29 08:21:29 +00:00
ab3100-otp.c
mfd: ab2100-otp: Remove pointless 'out of memory' error message
2016-01-14 08:43:53 +00:00
ab8500-core.c
mfd: ab8500-core: Constify attribute_group structures
2017-09-05 08:46:00 +01:00
ab8500-debugfs.c
mfd: ab8500-debugfs: Make it explicitly non-modular
2016-11-29 08:21:30 +00:00
ab8500-gpadc.c
mfd: ab8500-gpadc: Make it explicitly non-modular
2016-11-29 08:21:31 +00:00
ab8500-sysctrl.c
mfd: ab8500-sysctrl: Handle probe deferral
2017-02-13 09:29:43 +00:00
abx500-core.c
mfd: abx500-core: drop unused MODULE_ tags from non-modular code
2016-11-29 08:21:32 +00:00
ac100.c
mfd: ac100: Add driver for X-Powers AC100 audio codec / RTC combo IC
2016-08-08 12:53:26 +01:00
act8945a.c
mfd: act8945a: Add .of_compatible for act8945a-charger
2016-10-04 15:48:03 +01:00
adp5520.c
mfd: adp5520: Some trivial 'no space before tab' fixes
2016-01-14 08:43:57 +00:00
altera-a10sr.c
mfd: altr_a10sr: Add Arria10 DevKit Reset Controller
2017-04-27 09:25:04 +01:00
arizona-core.c
mfd: arizona: Remove audio related device tree code
2017-09-20 17:34:04 +01:00
arizona-i2c.c
mfd: arizona-i2c: Add blank line formatting after declaration
2016-01-14 08:43:58 +00:00
arizona-irq.c
kernel/irq: Extend lockdep class for request mutex
2017-12-28 12:26:35 +01:00
arizona-spi.c
arizona.h
mfd: arizona: Remove totally unused forward declaration
2017-02-13 09:29:40 +00:00
as3711.c
mfd: as3711: Use devm_mfd_add_devices() for mfd_device registration
2016-04-19 07:54:50 +01:00
as3722.c
mfd: as3722: Use devm_mfd_add_devices and devm_regmap_add_irq_chip
2016-05-09 08:24:46 +01:00
asic3.c
mfd: asic3: Make use of raw_spinlock variants
2017-04-27 09:25:05 +01:00
atmel-flexcom.c
mfd: atmel: Use devm_of_platform_populate()
2017-07-06 08:29:12 +01:00
atmel-hlcdc.c
mfd: atmel-hlcdc: Do not sleep in atomic context
2016-10-04 15:48:04 +01:00
atmel-smc.c
mfd: syscon: atmel-smc: Add helper to retrieve register layout
2017-09-05 08:46:01 +01:00
axp20x-i2c.c
mfd: axp20x-i2c: Add i2c-ids to fix module auto-loading
2016-11-29 08:21:25 +00:00
axp20x-rsb.c
mfd: axp20x: Add support for AXP813 PMIC
2017-09-05 08:46:00 +01:00
axp20x.c
mfd: axp20x: Add axp20x-regulator cell for AXP813
2017-11-01 09:33:18 +00:00
bcm590xx.c
mfd: bcm590xx: Simplify a test
2016-11-29 08:21:33 +00:00
bd9571mwv.c
mfd: Add ROHM BD9571MWV-M MFD PMIC driver
2017-09-05 08:46:00 +01:00
cros_ec.c
chrome-platform-for-linus-4.13
2017-07-11 09:55:47 -07:00
cros_ec_acpi_gpe.c
mfd: cros_ec: Add ACPI GPE handler for LID0 devices
2017-04-27 09:25:03 +01:00
cros_ec_i2c.c
mfd: cros_ec_i2c: Fix trivial 'tabs before spaces' whitespace issue.
2016-01-14 08:44:01 +00:00
cros_ec_spi.c
mfd: cros ec: spi: Fix "in progress" error signaling
2017-11-29 16:29:46 +00:00
cs47l24-tables.c
mfd: arizona: Mark AIFx_TX_BCLK_RATE as readable for cs47l24
2016-11-21 13:00:18 +00:00
cs5535-mfd.c
mfd: cs5535-mfd: Add missing line spacing and make local array static
2016-01-14 08:44:02 +00:00
da903x.c
mfd: da903x: Fix white space and split string issues
2016-01-14 08:44:03 +00:00
da9052-core.c
mfd: da9052: Fix manual ADC read after timed out read
2017-09-05 08:46:00 +01:00
da9052-i2c.c
mfd: da9052-i2c: Fix tabbing/whitespace issue
2016-01-14 08:44:03 +00:00
da9052-irq.c
mfd: da9052-irq: Fix trivial 'space before comma' error
2016-01-14 08:44:04 +00:00
da9052-spi.c
mfd: da9052: Constify spi_device_id
2017-09-05 08:46:01 +01:00
da9055-core.c
da9055-i2c.c
mfd: da9055: Constify i2c_device_id
2017-09-05 08:46:01 +01:00
da9062-core.c
Revert "mfd: da9061: Fix to remove BBAT_CONT register from chip model"
2017-08-22 09:03:00 +01:00
da9063-core.c
mfd: da9063: Update author information to remove incorrect e-mail addresses
2016-10-04 15:48:01 +01:00
da9063-i2c.c
mfd: da9063: Update author information to remove incorrect e-mail addresses
2016-10-04 15:48:01 +01:00
da9063-irq.c
mfd: da9063: Update author information to remove incorrect e-mail addresses
2016-10-04 15:48:01 +01:00
da9150-core.c
davinci_voicecodec.c
mfd: davinci_voicecodec: Tidyup header difinitions
2016-11-29 08:21:27 +00:00
db8500-prcmu.c
mfd: db8500-prcmu: Get rid of cpufreq dependency
2017-08-22 15:49:33 +02:00
dbx500-prcmu-regs.h
dln2.c
dm355evm_msp.c
mfd: dm355evm_msp: Move header file out of I2C realm
2017-08-15 08:06:14 +01:00
exynos-lpass.c
mfd: exynos: Use devm_of_platform_populate()
2017-07-06 08:29:12 +01:00
ezx-pcap.c
fsl-imx25-tsadc.c
mfd: fsl-imx25: Clean up irq settings during removal
2017-10-24 09:12:14 +01:00
hi655x-pmic.c
mfd: hi655x: Add the clock cell to provide WiFi and Bluetooth
2017-04-27 11:54:43 +01:00
hi6421-pmic-core.c
mfd: hi6421-pmic: Add support for HiSilicon Hi6421v530
2017-09-05 08:46:00 +01:00
htc-i2cpld.c
mfd: htc-i2cpld: Use gpiochip data pointer
2016-04-19 07:58:30 +01:00
htc-pasic3.c
intel-lpss-acpi.c
mfd: intel-lpss: Remove left over variable
2017-04-27 09:25:04 +01:00
intel-lpss-pci.c
mfd: intel-lpss: Add missing PCI ID for Intel Sunrise Point LPSS devices
2017-09-05 08:46:01 +01:00
intel-lpss.c
mfd: intel-lpss: Put I2C and SPI controllers into reset state on suspend
2017-09-05 08:46:01 +01:00
intel-lpss.h
PM / mfd: intel-lpss: Push system sleep callbacks to late/early stages
2017-10-05 12:59:54 +02:00
intel_msic.c
mfd: intel_msic: Make it explicitly non-modular
2016-10-04 15:48:03 +01:00
intel_quark_i2c_gpio.c
mfd: intel_quark_i2c_gpio: Add support for SIMATIC IOT2000 platform
2017-07-06 08:29:12 +01:00
intel_soc_pmic_bxtwc.c
mfd: intel_soc_pmic_bxtwc: Use chained IRQs for second level IRQ chips
2017-06-19 15:45:01 +01:00
intel_soc_pmic_chtdc_ti.c
mfd: Add support for Cherry Trail Dollar Cove TI PMIC
2017-10-13 10:42:58 +01:00
intel_soc_pmic_chtwc.c
mfd: Add Cherry Trail Whiskey Cove PMIC driver
2017-07-06 08:29:13 +01:00
intel_soc_pmic_core.c
mfd: intel_soc_pmic: Differentiate between Bay and Cherry Trail CRC variants
2017-09-05 08:46:02 +01:00
intel_soc_pmic_core.h
mfd: intel_soc_pmic: Export separate mfd-cell configs for BYT and CHT
2017-09-05 08:46:02 +01:00
intel_soc_pmic_crc.c
mfd: intel_soc_pmic: Export separate mfd-cell configs for BYT and CHT
2017-09-05 08:46:02 +01:00
ipaq-micro.c
mfd: ipaq-micro: Dump debugging hexdumps
2017-07-06 08:29:11 +01:00
janz-cmodio.c
jz4740-adc.c
Kconfig
- New Drivers
2017-11-16 09:15:57 -08:00
kempld-core.c
dmi: Mark all struct dmi_system_id instances const
2017-09-14 11:59:30 +02:00
lm3533-core.c
lm3533-ctrlbank.c
lp873x.c
mfd: lp873x: Remove unused mutex lock from struct lp873x
2016-10-04 15:48:04 +01:00
lp3943.c
mfd: lp3943: Use devm_mfd_add_devices() for mfd_device registration
2016-04-19 07:55:23 +01:00
lp8788-irq.c
mfd: lp8788-irq: Uninitialized variable in irq handler
2016-04-11 13:31:40 +01:00
lp8788.c
lp87565.c
mfd: lp87565: Convert to use devm_mfd_add_devices()
2017-09-05 08:46:01 +01:00
lpc_ich.c
mfd: lpc_ich: Avoton/Rangeley uses SPI_BYT method
2017-10-24 09:12:03 +01:00
lpc_sch.c
Makefile
- New Drivers
2017-11-16 09:15:57 -08:00
max8907.c
max8925-core.c
max8925-i2c.c
mfd: max8925-i2c: Drop unnecessary static
2017-09-05 08:46:00 +01:00
max8997-irq.c
mfd: max8997-irq: 'inline' should be at the beginning of the declaration
2016-10-04 15:48:05 +01:00
max8997.c
mfd: max8997: Make it explicitly non-modular
2016-06-29 10:14:30 +01:00
max8998-irq.c
max8998.c
mfd: max8998: Fix potential NULL pointer dereference
2017-09-05 08:46:00 +01:00
max14577.c
mfd: max14577: Change Krzysztof Kozlowski's email to kernel.org
2016-10-04 15:48:02 +01:00
max77620.c
treewide: Fix printk() message errors
2016-12-14 10:54:27 +01:00
max77686.c
mfd: max77686: Remove I2C device ID table
2017-02-13 09:29:43 +00:00
max77693.c
mfd: max77693: Add muic of_compatible in mfd_cell
2017-10-13 10:42:58 +01:00
max77843.c
mfd: max77843: Make it explicitly non-modular
2016-06-29 10:14:28 +01:00
mc13xxx-core.c
mc13xxx-i2c.c
mc13xxx-spi.c
mc13xxx.h
mcp-core.c
mcp-sa11x0.c
menelaus.c
mfd: menelaus: Remove obsolete local_irq_disable() and local_irq_enable()
2017-04-27 11:54:46 +01:00
menf21bmc.c
mfd: menf21bmc: Use devm_mfd_add_devices() for mfd_device registration
2016-04-19 07:55:30 +01:00
mfd-core.c
mfd: core: Fix device reference leak in mfd_clone_cell
2016-11-29 08:21:34 +00:00
motorola-cpcap.c
mfd: motorola-cpcap: Use devm_of_platform_populate()
2017-07-06 08:29:12 +01:00
mt6397-core.c
mfd: mt6397: Align the placement at which the mfd_cell of LED is defined
2017-04-27 09:25:05 +01:00
mxs-lradc.c
mfd: mxs-lradc: Fix error handling in mxs_lradc_probe()
2017-10-24 09:12:14 +01:00
omap-usb-host.c
mfd: omap-usb-host: Return value is not 'const int'
2016-10-04 15:48:05 +01:00
omap-usb-tll.c
mfd: omap-usb-tll: Fix register offsets
2017-09-05 08:46:02 +01:00
omap-usb.h
palmas.c
mfd: palmas: Use devm_of_platform_populate()
2017-07-06 08:29:12 +01:00
pcf50633-adc.c
pcf50633-core.c
pcf50633-gpio.c
pcf50633-irq.c
qcom-pm8xxx.c
mfd: pm8xxx: add support to pm8821
2016-11-29 08:21:36 +00:00
qcom-spmi-pmic.c
mfd: qcom-spmi-pmic: Use devm_of_platform_populate()
2017-07-06 08:29:12 +01:00
qcom_rpm.c
mfd: qcom_rpm: Handle message RAM clock
2016-10-04 15:48:02 +01:00
rc5t583-irq.c
mfd: rc5t583: Use devm_mfd_add_devices and devm_request_threaded_irq
2016-05-09 13:27:38 +01:00
rc5t583.c
mfd: rc5t583: Use devm_mfd_add_devices and devm_request_threaded_irq
2016-05-09 13:27:38 +01:00
rdc321x-southbridge.c
mfd: rdc321x: Use devm_mfd_add_devices() for mfd_device registration
2016-04-19 07:55:52 +01:00
retu-mfd.c
mfd: retu: Add OF device ID table
2017-07-18 08:27:18 +01:00
rk808.c
mfd: rk808: Add RK805 power key support
2017-08-21 08:54:56 +01:00
rn5t618.c
mfd: rn5t618: Unregister restart handler on remove
2017-07-06 08:29:11 +01:00
rt5033.c
mfd: rt5033: Use devm_mfd_add_devices() for mfd_device registration
2016-04-19 07:56:17 +01:00
rtl8411.c
rts5209.c
rts5227.c
rts5229.c
rts5249.c
mfd: rts5249: Add support for RTS5250S power saving
2017-10-13 10:42:59 +01:00
rtsx_pcr.c
mfd: rtsx: Release IRQ during shutdown
2018-01-05 11:14:57 +00:00
rtsx_pcr.h
mfd: rts5249: Add support for RTS5250S power saving
2017-10-13 10:42:59 +01:00
rtsx_usb.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
sec-core.c
mfd: sec: Use devm_mfd_add_devices and devm_regmap_add_irq_chip
2016-05-09 13:27:38 +01:00
sec-irq.c
mfd: sec: Use devm_mfd_add_devices and devm_regmap_add_irq_chip
2016-05-09 13:27:38 +01:00
si476x-cmd.c
si476x-i2c.c
mfd: si476x-i2c: Fix spelling mistakes "Failet" and "gett"
2016-11-29 08:21:29 +00:00
si476x-prop.c
sky81452.c
mfd: sky81452: Use devm_mfd_add_devices() for mfd_device registration
2016-04-19 07:56:28 +01:00
sm501.c
i2c: gpio: Augment all boardfiles to use open drain
2017-10-30 08:42:43 +01:00
smsc-ece1099.c
mfd: smsc-ece: Use devm_of_platform_populate()
2017-07-06 08:29:12 +01:00
sprd-sc27xx-spi.c
mfd: Add Spreadtrum SC27xx series PMICs driver
2017-11-01 09:32:54 +00:00
ssbi.c
mfd: ssbi: Use devm_of_platform_populate()
2017-11-01 09:32:23 +00:00
sta2x11-mfd.c
mfd: Convert remaining uses of pr_warning to pr_warn
2017-04-27 09:25:05 +01:00
stm32-lptimer.c
mfd: Add STM32 LPTimer driver
2017-09-04 14:49:04 +01:00
stm32-timers.c
mfd: stm32-timers: Use devm_of_platform_populate()
2017-07-06 08:29:12 +01:00
stmpe-i2c.c
mfd: Add STMPE1600 support
2016-08-10 09:25:18 +01:00
stmpe-spi.c
stmpe.c
mfd: stmpe: Fix bit clearing on STMPE1600
2017-04-27 09:25:07 +01:00
stmpe.h
mfd: Add STMPE1600 support
2016-08-10 09:25:18 +01:00
stw481x.c
mfd: stw481x: Make three arrays static const, reduces object code size
2017-10-13 10:42:58 +01:00
sun4i-gpadc.c
mfd: sun4i-gpadc: Fix 'cast from pointer to integer of different size' warning
2016-11-29 08:21:26 +00:00
sun6i-prcm.c
mfd: sun6i-prcm: Add codec analog controls sub-device for Allwinner A23
2017-02-13 09:29:40 +00:00
syscon.c
mfd: syscon: Support native-endian regmaps
2016-11-29 08:21:25 +00:00
t7l66xb.c
mfd: t7l66xb: Handle return value of clk_prepare_enable
2017-09-05 08:46:01 +01:00
tc3589x.c
mfd: tc3589x: Improve function-level documentation
2016-11-29 08:21:19 +00:00
tc6387xb.c
tc6393xb.c
mfd: tc6393xb: Handle return value of clk_prepare_enable
2017-07-06 08:29:12 +01:00
ti-lmu.c
mfd: Add TI LMU driver
2017-04-27 09:25:04 +01:00
ti_am335x_tscadc.c
mfd: ti_am335x_tscadc: store physical address
2016-11-05 17:30:51 +00:00
timberdale.c
Input: tsc2007 - move header file out of I2C realm
2017-05-22 17:26:58 -07:00
timberdale.h
tmio_core.c
tps6105x.c
mfd: tps6105x: Add OF device ID table
2017-07-18 08:27:37 +01:00
tps6507x.c
mfd: tps6507: Fix white space warnings reported by checkpatch
2016-06-29 10:14:35 +01:00
tps6586x.c
tps65010.c
mfd: tps65010: Move header file out of I2C realm
2017-08-15 08:27:22 +01:00
tps65086.c
mfd: tps65086: Add driver for the TPS65086 PMIC
2016-03-16 08:50:15 +00:00
tps65090.c
mfd: tps65090: Set regmap config reg counts properly
2016-03-16 08:50:36 +00:00
tps65217.c
mfd: tps65217: Introduce dependency on CONFIG_OF
2017-10-13 10:42:58 +01:00
tps65218.c
mfd: tps65218: Introduce dependency on CONFIG_OF
2017-10-13 10:42:59 +01:00
tps65910.c
regulator: tps65910: wire up sleep control configuration
2017-06-15 18:23:27 +01:00
tps65911-comparator.c
tps65912-core.c
mfd: tps65912: Move regmap config into core driver
2016-11-29 08:21:21 +00:00
tps65912-i2c.c
mfd: tps65912: Export OF device ID table as module aliases
2017-02-13 09:29:43 +00:00
tps65912-spi.c
mfd: tps65912: Fix variable name for SPI remove
2017-04-27 09:25:04 +01:00
tps68470.c
mfd: Add support for TPS68470 device
2017-09-05 08:46:01 +01:00
tps80031.c
twl-core.c
mfd: twl-core: Improve the documentation
2017-09-05 08:45:59 +01:00
twl-core.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
twl4030-audio.c
mfd: twl4030-audio: Fix sibling-node lookup
2017-11-29 16:28:45 +00:00
twl4030-irq.c
mfd: twl: Move header file out of I2C realm
2017-09-04 14:41:02 +01:00
twl4030-power.c
mfd: twl: Move header file out of I2C realm
2017-09-04 14:41:02 +01:00
twl6030-irq.c
mfd: twl: Move header file out of I2C realm
2017-09-04 14:41:02 +01:00
twl6040.c
mfd: twl6040: Fix child-node lookup
2017-11-29 16:29:36 +00:00
ucb1x00-assabet.c
ucb1x00-core.c
mfd: ucb1x00: Remove NO_IRQ check
2016-10-04 15:48:03 +01:00
ucb1x00-ts.c
ucb1400_core.c
vexpress-sysreg.c
mfd: vexpress-sysreg: Switch to gpiochip_add_data()
2016-04-19 07:59:06 +01:00
viperboard.c
vx855.c
wl1273-core.c
mfd: wl1273-core: Use devm_mfd_add_devices() for mfd_device registration
2016-05-09 13:27:39 +01:00
wm97xx-core.c
mfd: wm97xx-core: core support for wm97xx Codec
2017-09-19 17:07:24 +01:00
wm831x-auxadc.c
wm831x-core.c
mfd: wm831x: Remove redundant !pdata checks
2017-07-06 08:29:11 +01:00
wm831x-i2c.c
mfd: wm831x-i2c: Add NULL check before pointer dereference
2017-07-06 08:29:11 +01:00
wm831x-irq.c
mfd: wm831x: Add basic device tree binding
2017-03-23 11:45:50 +00:00
wm831x-otp.c
mfd: wm831x: Fix broken wm831x_unique_id_show
2016-01-11 06:23:21 +00:00
wm831x-spi.c
mfd: wm831x-spi: Add NULL check before pointer dereference
2017-07-06 08:29:11 +01:00
wm5102-tables.c
mfd: wm5102: Remove spurious trailing spaces
2016-11-29 08:21:26 +00:00
wm5110-tables.c
mfd: wm5110: ARIZONA_CLOCK_CONTROL should be volatile
2016-05-09 15:41:35 +01:00
wm8350-core.c
wm8350-gpio.c
wm8350-i2c.c
wm8350-irq.c
wm8350-regmap.c
wm8400-core.c
mfd: Use IS_ENABLED(CONFIG_FOO) instead of checking FOO || FOO_MODULE
2016-05-09 08:23:56 +01:00
wm8994-core.c
mfd: wm8994-core: Don't use managed regulator bulk get API
2016-11-29 08:21:27 +00:00
wm8994-irq.c
wm8994-regmap.c
wm8994.h
wm8997-tables.c
wm8998-tables.c
mfd: wm8998: Fix defaults array based on testing
2016-03-16 08:50:22 +00:00