linux-stable/drivers/power/supply
Hans de Goede fbca8bae1b power: supply: bq27xxx-i2c: Do not free non existing IRQ
[ Upstream commit 2df70149e7 ]

The bq27xxx i2c-client may not have an IRQ, in which case
client->irq will be 0. bq27xxx_battery_i2c_probe() already has
an if (client->irq) check wrapping the request_threaded_irq().

But bq27xxx_battery_i2c_remove() unconditionally calls
free_irq(client->irq) leading to:

[  190.310742] ------------[ cut here ]------------
[  190.310843] Trying to free already-free IRQ 0
[  190.310861] WARNING: CPU: 2 PID: 1304 at kernel/irq/manage.c:1893 free_irq+0x1b8/0x310

Followed by a backtrace when unbinding the driver. Add
an if (client->irq) to bq27xxx_battery_i2c_remove() mirroring
probe() to fix this.

Fixes: 444ff00734 ("power: supply: bq27xxx: Fix I2C IRQ race on remove")
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20240215155133.70537-1-hdegoede@redhat.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-03-06 14:48:37 +00:00
..
88pm860x_battery.c
88pm860x_charger.c
ab8500-bm.h
ab8500-chargalg.h
ab8500_bmdata.c
ab8500_btemp.c power: supply: ab8500: Set typing and props 2023-09-11 12:51:07 +02:00
ab8500_chargalg.c power: supply: ab8500: Set typing and props 2023-09-11 12:51:07 +02:00
ab8500_charger.c
ab8500_fg.c power: supply: ab8500: Fix external_power_changed race 2023-05-08 15:03:50 +02:00
acer_a500_battery.c
act8945a_charger.c
adp5061.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
apm_power.c
axp20x_ac_power.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
axp20x_battery.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
axp20x_usb_power.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
axp288_charger.c power: supply: axp288_charger: Use alt usb-id extcon on some x86 android tablets 2023-04-01 23:01:42 +02:00
axp288_fuel_gauge.c power: supply: axp288_fuel_gauge: Fix external_power_changed race 2023-05-08 15:04:53 +02:00
bd99954-charger.c power: supply: bd99954: make read-only array sub_status_reg 2023-07-19 23:12:36 +02:00
bd99954-charger.h
bq27xxx_battery.c power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() + schedule() 2023-05-08 15:29:12 +02:00
bq27xxx_battery_hdq.c
bq27xxx_battery_i2c.c power: supply: bq27xxx-i2c: Do not free non existing IRQ 2024-03-06 14:48:37 +00:00
bq256xx_charger.c power: supply: bq256xx: fix some problem in bq256xx_hw_init 2024-01-25 15:35:50 -08:00
bq2415x_charger.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
bq2515x_charger.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
bq24190_charger.c power: supply: bq24190: Considers FORCE_20PCT when getting IPRECHG 2023-07-19 22:55:59 +02:00
bq24257_charger.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
bq24735-charger.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
bq25890_charger.c power supply and reset changes for the 6.5 series 2023-07-03 17:23:16 -07:00
bq25980_charger.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
bq25980_charger.h
charger-manager.c power: supply: charger-manager: Use of_property_read_bool() for boolean properties 2023-03-12 23:33:43 +01:00
collie_battery.c
cpcap-battery.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
cpcap-charger.c
cros_peripheral_charger.c power: supply: cros_pchg: Sync port status on resume 2023-05-08 14:31:24 +02:00
cros_usbpd-charger.c power: supply: cros_usbpd: reclassify "default case!" as debug 2023-03-10 00:20:43 +01:00
cw2015_battery.c power: supply: cw2015: correct time_to_empty units in sysfs 2024-01-25 15:35:50 -08:00
da9030_battery.c
da9052-battery.c
da9150-charger.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
da9150-fg.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
ds2760_battery.c
ds2780_battery.c
ds2781_battery.c
ds2782_battery.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
generic-adc-battery.c power: supply: generic-adc-battery: style fixes 2023-03-29 22:38:57 +02:00
goldfish_battery.c
gpio-charger.c
ingenic-battery.c
ip5xxx_power.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
ipaq_micro_battery.c
isp1704_charger.c
Kconfig power: supply: rt5033_charger: recognize EXTCON setting 2023-09-12 18:30:59 +02:00
lego_ev3_battery.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
lp8727_charger.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
lp8788-charger.c
lt3651-charger.c
ltc2941-battery-gauge.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
ltc4162-l-charger.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
Makefile power supply and reset changes for the 6.5 series 2023-07-03 17:23:16 -07:00
max1721x_battery.c
max8903_charger.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
max8925_power.c
max8997_charger.c
max8998_charger.c
max14577_charger.c
max14656_charger_detector.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
max17040_battery.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
max17042_battery.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
max77650-charger.c
max77693_charger.c
max77976_charger.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
mp2629_charger.c
mt6360_charger.c power: supply: mt6360: add a check of devm_work_autocancel in mt6360_charger_probe 2023-05-16 00:46:53 +02:00
mt6370-charger.c power: supply: mt6370: Fix missing error code in mt6370_chg_toggle_cfo() 2023-09-11 20:15:43 +02:00
olpc_battery.c
pcf50633-charger.c
pmu_battery.c
power_supply.h
power_supply_core.c power: supply: core: Use blocking_notifier_call_chain to avoid RCU complaint 2023-11-08 11:56:20 +01:00
power_supply_hwmon.c power: supply: hwmon: constify pointers to hwmon_channel_info 2023-05-08 15:33:16 +02:00
power_supply_leds.c - New Drivers 2023-07-03 11:26:05 -07:00
power_supply_sysfs.c power: supply: core: fix use after free in uevent 2023-09-19 14:08:34 +02:00
qcom_battmgr.c power: supply: qcom_battmgr: fix enable request endianness 2023-09-30 21:00:20 +02:00
qcom_pmi8998_charger.c power: supply: Fix null pointer dereference in smb2_probe 2024-01-25 15:35:54 -08:00
qcom_smbb.c
rk817_charger.c power: supply: rk817: Fix node refcount leak 2023-09-20 19:37:15 +02:00
rn5t618_power.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
rt5033_battery.c power supply and reset changes for the 6.5 series 2023-07-03 17:23:16 -07:00
rt5033_charger.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
rt9455_charger.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
rt9467-charger.c power: supply: rt9467: Fix rt9467_run_aicl() 2023-09-14 18:09:14 +02:00
rt9471.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
rx51_battery.c
samsung-sdi-battery.c
samsung-sdi-battery.h
sbs-battery.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
sbs-charger.c power supply and reset changes for the 6.5 series 2023-07-03 17:23:16 -07:00
sbs-manager.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
sc27xx_fuel_gauge.c power: supply: sc27xx: Fix external_power_changed race 2023-05-08 15:06:12 +02:00
sc2731_charger.c
smb347-charger.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
surface_battery.c
surface_charger.c
test_power.c
tps65090-charger.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
tps65217_charger.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
twl4030_charger.c power: Explicitly include correct DT includes 2023-07-19 22:47:03 +02:00
twl4030_madc_battery.c power: supply: twl4030_madc_battery: Refactor twl4030_madc_bat_ext_changed() 2023-05-08 15:07:56 +02:00
ucs1002_power.c power: supply: ucs1002: fix error code in ucs1002_get_property() 2023-09-14 17:38:02 +02:00
ug3105_battery.c power: supply: Switch i2c drivers back to use .probe() 2023-06-04 22:33:22 +02:00
wilco-charger.c
wm97xx_battery.c power: supply: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:53 -07:00
wm831x_backup.c
wm831x_power.c
wm8350_power.c