From: Waqar Hameed <waqar.hameed@axis.com>
To: Linus Walleij <linusw@kernel.org>,
Sebastian Reichel <sre@kernel.org>,
Samuel Kayode <samkay014@gmail.com>,
Wenyou Yang <wenyou.yang@atmel.com>,
Ricardo Rivera-Matos <r-rivera-matos@ti.com>,
Dan Murphy <dmurphy@ti.com>, Tony Lindgren <tony@atomide.com>,
"Mike A. Chan" <mikechan@google.com>,
Jun Nakajima <jun.nakajima@intel.com>,
Xiaohui Xin <xiaohui.xin@intel.com>,
Yunhong Jiang <yunhong.jiang@intel.com>,
Tom Keel <thomas.keel@intel.com>, Frank Li <Frank.Li@nxp.com>,
Lee Jones <lee@kernel.org>, Nikita Travkin <nikita@trvn.ru>,
Anda-Maria Nicolae <anda-maria.nicolae@intel.com>,
Krzysztof Kozlowski <krzk@kernel.org>,
Phil Reid <preid@electromag.com.au>,
Alan Cox <alan@linux.intel.com>,
Sheng Yang <sheng@linux.intel.com>
Cc: <linux-pm@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<imx@lists.linux.dev>
Subject: [PATCH 00/11] power: supply: Fix use-after-free in power_supply_changed()
Date: Sat, 20 Dec 2025 23:35:58 +0100 [thread overview]
Message-ID: <cover.1766268280.git.waqar.hameed@axis.com> (raw)
The majority of the drivers in `drivers/power/supply/` do the right
thing when registering an interrupt handler and the `power_supply`
handle; namely making sure that the interrupt handler only runs while
the `power_supply` handle is valid. The drivers in this patch series do
not however. This can lead to a nasty use-after-free as thoroughly
explained in the commit message.
These were identified by grepping for `request.+irq` and
`power_supply_changed\(`, and then manually inspecting and fixing the
affected ones. This issue was found when writing a new driver for the
upcoming TI BQ25630 [1]. Patch adding support for that one will be sent
as soon as TI releases the datasheet publicly, which should be anytime
soon...
[1] https://www.ti.com/product/BQ25630
Waqar Hameed (11):
power: supply: ab8500: Fix use-after-free in power_supply_changed()
power: supply: act8945a: Fix use-after-free in power_supply_changed()
power: supply: bq256xx: Fix use-after-free in power_supply_changed()
power: supply: bq25980: Fix use-after-free in power_supply_changed()
power: supply: cpcap-battery: Fix use-after-free in
power_supply_changed()
power: supply: goldfish: Fix use-after-free in power_supply_changed()
power: supply: pf1550: Fix use-after-free in power_supply_changed()
power: supply: pm8916_bms_vm: Fix use-after-free in
power_supply_changed()
power: supply: pm8916_lbc: Fix use-after-free in
power_supply_changed()
power: supply: rt9455: Fix use-after-free in power_supply_changed()
power: supply: sbs-battery: Fix use-after-free in
power_supply_changed()
drivers/power/supply/ab8500_charger.c | 40 ++++++++++++-------------
drivers/power/supply/act8945a_charger.c | 16 +++++-----
drivers/power/supply/bq256xx_charger.c | 12 ++++----
drivers/power/supply/bq25980_charger.c | 12 ++++----
drivers/power/supply/cpcap-battery.c | 8 ++---
drivers/power/supply/goldfish_battery.c | 12 ++++----
drivers/power/supply/pf1550-charger.c | 32 ++++++++++----------
drivers/power/supply/pm8916_bms_vm.c | 18 +++++------
drivers/power/supply/pm8916_lbc.c | 18 +++++------
drivers/power/supply/rt9455_charger.c | 17 ++++++-----
drivers/power/supply/sbs-battery.c | 36 +++++++++++-----------
11 files changed, 111 insertions(+), 110 deletions(-)
base-commit: fa084c35afa13ab07a860ef0936cd987f9aa0460
--
2.39.5
next reply other threads:[~2025-12-20 22:36 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-20 22:35 Waqar Hameed [this message]
2025-12-20 22:35 ` [PATCH 01/11] power: supply: ab8500: Fix use-after-free in power_supply_changed() Waqar Hameed
2025-12-22 22:35 ` Linus Walleij
2025-12-20 22:35 ` [PATCH 02/11] power: supply: act8945a: " Waqar Hameed
2025-12-20 22:35 ` [PATCH 04/11] power: supply: bq25980: " Waqar Hameed
2025-12-20 22:35 ` [PATCH 03/11] power: supply: bq256xx: " Waqar Hameed
2025-12-20 22:36 ` [PATCH 06/11] power: supply: goldfish: " Waqar Hameed
2025-12-20 22:36 ` [PATCH 05/11] power: supply: cpcap-battery: " Waqar Hameed
2025-12-20 22:36 ` [PATCH 09/11] power: supply: pm8916_lbc: " Waqar Hameed
2025-12-21 5:45 ` Nikita Travkin
2026-01-07 14:32 ` Waqar Hameed
2026-01-14 10:48 ` Waqar Hameed
2026-01-14 14:52 ` Sebastian Reichel
2025-12-20 22:36 ` [PATCH 08/11] power: supply: pm8916_bms_vm: " Waqar Hameed
2025-12-21 5:47 ` Nikita Travkin
2025-12-20 22:36 ` [PATCH 07/11] power: supply: pf1550: " Waqar Hameed
2026-01-06 2:59 ` Samuel Kayode
2025-12-20 22:36 ` [PATCH 11/11] power: supply: sbs-battery: " Waqar Hameed
2026-01-05 3:16 ` Phil Reid
2025-12-20 22:36 ` [PATCH 10/11] power: supply: rt9455: " Waqar Hameed
2026-01-12 1:56 ` [PATCH 00/11] power: supply: " Sebastian Reichel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1766268280.git.waqar.hameed@axis.com \
--to=waqar.hameed@axis.com \
--cc=Frank.Li@nxp.com \
--cc=alan@linux.intel.com \
--cc=anda-maria.nicolae@intel.com \
--cc=dmurphy@ti.com \
--cc=imx@lists.linux.dev \
--cc=jun.nakajima@intel.com \
--cc=krzk@kernel.org \
--cc=lee@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mikechan@google.com \
--cc=nikita@trvn.ru \
--cc=preid@electromag.com.au \
--cc=r-rivera-matos@ti.com \
--cc=samkay014@gmail.com \
--cc=sheng@linux.intel.com \
--cc=sre@kernel.org \
--cc=thomas.keel@intel.com \
--cc=tony@atomide.com \
--cc=wenyou.yang@atmel.com \
--cc=xiaohui.xin@intel.com \
--cc=yunhong.jiang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.