WSL2-Linux-Kernel/drivers/power/supply
Hans de Goede e601ae8191 power: supply: bq27xxx-i2c: Do not free non existing IRQ
[ Upstream commit 2df70149e73e79783bcbc7db4fa51ecef0e2022c ]

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:38:48 +00:00
..
88pm860x_battery.c power: supply: 88pm860x_battery: Remove unnecessary int for long long 2021-04-02 14:14:58 +02:00
88pm860x_charger.c
Kconfig power: supply: smb347-charger: Implement USB VBUS regulator 2021-08-16 17:57:10 +02:00
Makefile Immutable branch between regulator and power-supply for for 5.15 2021-08-13 18:50:16 +02:00
ab8500-bm.h power: supply: ab8500: Drop abx500 concept 2021-07-16 15:14:30 +02:00
ab8500-chargalg.h power: supply: ab8500: Fix an old bug 2021-06-30 00:14:55 +02:00
ab8500_bmdata.c power: supply: ab8500: Drop some includes from bmdata 2021-07-16 15:14:30 +02:00
ab8500_btemp.c power: supply: ab8500: Fix external_power_changed race 2023-06-21 15:59:12 +02:00
ab8500_chargalg.c power: ab8500_chargalg: Use CLOCK_MONOTONIC 2022-04-08 14:23:39 +02:00
ab8500_charger.c power: supply: ab8500: Fix error handling in ab8500_charger_init() 2022-12-31 13:14:32 +01:00
ab8500_fg.c power: supply: ab8500: Fix external_power_changed race 2023-06-21 15:59:12 +02:00
acer_a500_battery.c power: supply: Add battery gauge driver for Acer Iconia Tab A500 2021-01-14 23:39:43 +01:00
act8945a_charger.c power: supply: act8945a: correct kerneldoc 2021-04-20 16:18:08 +02:00
adp5061.c power: supply: adp5061: fix out-of-bounds read in adp5061_get_chg_type() 2022-10-26 12:35:47 +02:00
apm_power.c
axp20x_ac_power.c power: supply: axp20x_ac_power: Add wakeup control 2020-01-14 01:00:41 +01:00
axp20x_battery.c power: supply: axp20x_battery: properly report current when discharging 2022-04-13 20:59:03 +02:00
axp20x_usb_power.c power supply and reset changes for the v5.13 series 2021-04-28 15:43:58 -07:00
axp288_charger.c extcon: Fix extcon_get_extcon_dev() error handling 2022-06-14 18:36:21 +02:00
axp288_fuel_gauge.c power: supply: axp288_fuel_gauge: Drop BIOS version check from "T3 MRD" DMI quirk 2022-06-14 18:36:06 +02:00
bd99954-charger.c power: supply: Make bd9995x_chip_reset static 2020-05-28 19:02:59 +02:00
bd99954-charger.h power: supply: Support ROHM bd99954 charger 2020-05-10 02:35:49 +02:00
bq27xxx_battery.c power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() + schedule() 2023-06-21 15:59:12 +02:00
bq27xxx_battery_hdq.c power supply and reset changes for the v5.10 series 2020-10-20 10:56:34 -07:00
bq27xxx_battery_i2c.c power: supply: bq27xxx-i2c: Do not free non existing IRQ 2024-03-06 14:38:48 +00:00
bq256xx_charger.c power: supply: bq256xx: fix some problem in bq256xx_hw_init 2024-01-25 14:52:50 -08:00
bq2415x_charger.c power: supply: bq2xxxx: Replace HTTP links with HTTPS ones 2020-07-28 02:07:35 +02:00
bq2515x_charger.c power: supply: bq2515x: fix kerneldoc 2020-10-03 22:17:50 +02:00
bq24190_charger.c power: supply: bq24190: Call power_supply_changed() after updating input current 2023-06-05 09:21:13 +02:00
bq24257_charger.c power: supply: bq24257: skip 'struct acpi_device_id' when !CONFIG_ACPI 2020-10-03 22:17:50 +02:00
bq24735-charger.c power: supply: bq24735: reorganize ChargeOption command macros 2021-08-13 18:38:17 +02:00
bq25890_charger.c power: bq25890: Enable continuous conversion for ADC at charging 2022-01-11 15:35:17 +01:00
bq25980_charger.c power: supply: bq25980: Move props from battery node 2021-04-05 17:51:21 +02:00
bq25980_charger.h power: supply: bq25980: Add support for the BQ259xx family 2020-10-04 01:54:35 +02:00
charger-manager.c extcon: Fix extcon_get_extcon_dev() error handling 2022-06-14 18:36:21 +02:00
collie_battery.c power: supply: collie_battery: Convert to GPIO descriptors 2020-11-30 02:18:49 +01:00
cpcap-battery.c power: supply: cpcap-battery: invalidate config when incompatible measurements are read 2021-06-04 14:28:31 +02:00
cpcap-charger.c power: supply: cpcap-charger: get the battery inserted infomation from cpcap-battery 2021-06-04 14:36:17 +02:00
cros_peripheral_charger.c power: supply: PCHG: Peripheral device charger 2021-07-16 15:54:34 +02:00
cros_usbpd-charger.c power: supply: cros_usbpd: reclassify "default case!" as debug 2023-04-20 12:13:54 +02:00
cw2015_battery.c power: supply: cw2015: correct time_to_empty units in sysfs 2024-01-25 14:52:50 -08:00
da9030_battery.c power: Convert to DEFINE_SHOW_ATTRIBUTE 2020-07-27 00:05:56 +02:00
da9052-battery.c
da9150-charger.c power: supply: da9150: Fix use after free bug in da9150_charger_remove due to race condition 2023-03-30 12:47:43 +02:00
da9150-fg.c
ds2760_battery.c power-supply: use kobj_to_dev() 2021-01-28 01:31:42 +01:00
ds2780_battery.c power: supply: ds2780: Switch to using the new API kobj_to_dev() 2021-01-16 12:36:26 +01:00
ds2781_battery.c power: supply: ds2781: use kobj_to_dev() 2021-03-22 15:05:41 +01:00
ds2782_battery.c
generic-adc-battery.c power: supply: generic-adc-battery: fix unit scaling 2023-05-11 23:00:36 +09:00
goldfish_battery.c power: supply: goldfish: skip 'struct acpi_device_id' when !CONFIG_ACPI 2020-10-03 22:17:50 +02:00
gpio-charger.c power: supply: gpio-charger: add charge-current-limit feature 2020-08-27 21:13:23 +02:00
ingenic-battery.c power: supply: ingenic: remove unneeded semicolon 2020-12-30 00:42:46 +01:00
ipaq_micro_battery.c power: supply: ipaq_micro_battery: remove unneeded semicolon 2020-01-17 02:13:00 +01:00
isp1704_charger.c change email address for Pali Rohár 2020-04-10 15:36:22 -07:00
lego_ev3_battery.c power: supply: lego_ev3: Simplify with dev_err_probe() 2020-08-26 17:25:45 +02:00
lp8727_charger.c
lp8788-charger.c power: supply: Use IRQF_ONESHOT 2021-03-22 14:54:24 +01:00
lt3651-charger.c
ltc2941-battery-gauge.c power: supply: Clean-up few drivers by using managed work init 2021-03-23 15:22:40 +01:00
ltc4162-l-charger.c power: supply: ltc4162-l: Constify static struct attribute_group 2021-01-13 22:11:43 +01:00
max1721x_battery.c power: supply: max1721x: Correct spelling 2021-03-22 15:11:22 +01:00
max8903_charger.c power: supply: max8903: Convert to GPIO descriptors 2021-01-12 23:23:49 +01:00
max8925_power.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
max8997_charger.c extcon: Fix extcon_get_extcon_dev() error handling 2022-06-14 18:36:21 +02:00
max8998_charger.c power: supply: max8998_charger: Correct ONLINE and add STATUS props 2020-06-19 19:58:23 +02:00
max14577_charger.c power: supply: max14577: remove unneeded variable initialization 2021-04-20 16:18:08 +02:00
max14656_charger_detector.c power: supply: max14656: Drop unused includes 2021-01-12 23:09:45 +01:00
max17040_battery.c power: supply: max17040: fix null-ptr-deref in max17040_probe() 2021-11-18 19:16:52 +01:00
max17042_battery.c power: supply: max17042_battery: Clear status bits in interrupt handler 2021-11-18 19:16:08 +01:00
max77650-charger.c power: supply: max77650: add of_match table 2019-12-19 01:13:26 +01:00
max77693_charger.c
mp2629_charger.c power: supply: Add support for mps mp2629 battery charger 2020-05-26 10:41:52 +01:00
mt6360_charger.c power: supply: mt6360: add a check of devm_work_autocancel in mt6360_charger_probe 2023-05-30 13:55:32 +01:00
olpc_battery.c power: supply: olpc_battery: fix the power supply name 2020-05-10 18:56:30 +02:00
pcf50633-charger.c
pda_power.c power: supply: pda_power: add missed usb_unregister_notifier 2019-12-19 01:07:53 +01:00
pm2301_charger.h
pmu_battery.c
power_supply.h
power_supply_core.c power: supply: Fix logic checking if system is running from battery 2023-06-21 15:59:13 +02:00
power_supply_hwmon.c power: supply: remove duplicated argument in power_supply_hwmon_info 2021-01-12 23:00:32 +01:00
power_supply_leds.c power: supply: leds: Fix blink to LED on transition 2023-05-30 13:55:32 +01:00
power_supply_sysfs.c power: supply: Ratelimit no data debug output 2023-06-21 15:59:12 +02:00
qcom_smbb.c power: supply: qcom_smbb: Remove superfluous error message 2021-08-06 23:36:12 +02:00
rn5t618_power.c power: supply: rn5t618: Add voltage_now property 2021-08-13 18:38:17 +02:00
rt5033_battery.c power: supply: rt5033_battery: Change voltage values to µV 2021-11-18 19:16:51 +01:00
rt9455_charger.c power: supply: rt9455: skip 'struct acpi_device_id' when !CONFIG_ACPI 2020-10-03 22:17:50 +02:00
rx51_battery.c change email address for Pali Rohár 2020-04-10 15:36:22 -07:00
s3c_adc_battery.c power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove() 2021-04-08 14:36:08 +02:00
sbs-battery.c power: supply: sbs-battery: add support for time_to_empty_now attribute 2021-08-06 23:48:51 +02:00
sbs-charger.c power: supply: sbs-charger: Fix INHIBITED bit for Status reg 2023-05-30 13:55:32 +01:00
sbs-manager.c power: supply: sbs-manager: update gpio include 2021-04-02 14:19:26 +02:00
sc27xx_fuel_gauge.c power: supply: sc27xx: Fix external_power_changed race 2023-06-21 15:59:12 +02:00
sc2731_charger.c power: supply: sc2731_charger: Add missing MODULE_DEVICE_TABLE 2021-05-13 18:24:22 +02:00
smb347-charger.c power: supply: smb347-charger: Implement USB VBUS regulator 2021-08-16 17:57:10 +02:00
surface_battery.c power: supply: surface_battery: Fix battery event handling 2021-05-13 18:26:07 +02:00
surface_charger.c power: supply: surface-charger: Fix type of integer variable 2021-06-03 20:53:54 +02:00
test_power.c power: supply: test-power: revise parameter printing to use sprintf 2020-10-09 01:02:30 +02:00
tosa_battery.c
tps65090-charger.c power: supply: Use IRQF_ONESHOT 2021-03-22 14:54:24 +01:00
tps65217_charger.c power: supply: Use IRQF_ONESHOT 2021-03-22 14:54:24 +01:00
twl4030_charger.c power: twl4030: Use scnprintf() for avoiding potential buffer overflow 2020-03-11 23:20:32 +01:00
twl4030_madc_battery.c
ucs1002_power.c power: supply: ucs1002: fix error code in ucs1002_get_property() 2023-10-06 13:18:13 +02:00
wilco-charger.c power: supply: wilco_ec: Add long life charging mode 2020-07-31 14:33:56 +02:00
wm97xx_battery.c power: supply: wm97xx_battery: Convert to GPIO descriptor 2021-01-13 22:25:07 +01:00
wm831x_backup.c
wm831x_power.c power: supply: wm831x_power: remove unneeded break 2020-11-30 02:46:23 +01:00
wm8350_power.c power: supply: wm8350-power: Add missing free in free_charger_irq 2022-04-08 14:23:37 +02:00
z2_battery.c power: supply: z2_battery: Fix possible memleak in z2_batt_probe() 2022-12-31 13:14:32 +01:00