From: sashiko-bot@kernel.org
To: "Asdlerto Korry" <korryasdlerto@gmail.com>
Cc: devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH 2/2] power: supply: Add Silicon Mitus SM5714 fuel gauge driver
Date: Wed, 11 Nov 2026 16:12:51 +0000 [thread overview]
Message-ID: <sashiko-outbox-209263@kernel.org> (raw)
In-Reply-To: <20261111-sm5714-fuel-gauge-v1-2-b9d163fff6ff@gmail.com>
Thank you for your contribution! Sashiko AI review found 2 potential
issues to consider:
- [High] power: supply: sm5714: missing MODULE_IMPORT_NS() for
IIO_CONSUMER
- [Medium] power: supply: sm5714: NULL deref on fg->psy in
sm5714_fg_get_status()
--
commit f1f865d4819006729764f420d2f1ef002104e726
Author: Asdlerto Korry <korryasdlerto@gmail.com>
power: supply: Add Silicon Mitus SM5714 fuel gauge driver
This commit adds a power supply driver for the Silicon Mitus SM5714 fuel
gauge, reading state of charge, voltage, current, and temperature over I2C
and an optional thermistor IIO channel.
> diff --git a/drivers/power/supply/sm5714_fuel_gauge.c b/drivers/power/supply/sm5714_fuel_gauge.c
> new file mode 100644
> index 0000000000000..531583fb211bb
> --- /dev/null
> +++ b/drivers/power/supply/sm5714_fuel_gauge.c
[ ... ]
> +static int sm5714_fg_get_status(struct sm5714_fg *fg, int *status)
> +{
> + unsigned int aux, soc;
> + int ma, ret;
> +
> + ret = regmap_read(fg->regmap, SM5714_FG_REG_AUX_STAT, &aux);
> + if (ret)
> + return ret;
> + ret = sm5714_fg_read_sram(fg, SM5714_FG_SRAM_SOC, &soc);
> + if (ret)
> + return ret;
> + ret = sm5714_fg_get_current_ma(fg, SM5714_FG_SRAM_CURRENT_AVG, &ma);
> + if (ret)
> + return ret;
> +
> + /* the charger stops after top-off while the adapter stays connected */
> + if (!(aux & SM5714_FG_AUX_STAT_CHG_ON) && power_supply_am_i_supplied(fg->psy) <= 0)
> + *status = POWER_SUPPLY_STATUS_DISCHARGING;
> + else if (sm5714_fg_soc_permille(soc) >= 990)
> + *status = POWER_SUPPLY_STATUS_FULL;
> + else if (ma > 0)
> + *status = POWER_SUPPLY_STATUS_CHARGING;
> + else
> + *status = POWER_SUPPLY_STATUS_NOT_CHARGING;
> +
> + return 0;
> +}
> +
> +static int sm5714_fg_get_property(struct power_supply *psy,
> + enum power_supply_property psp,
> + union power_supply_propval *val)
> +{
> + struct sm5714_fg *fg = power_supply_get_drvdata(psy);
> + unsigned int raw;
> + int ret;
> +
> + switch (psp) {
> + case POWER_SUPPLY_PROP_STATUS:
> + return sm5714_fg_get_status(fg, &val->intval);
[Severity: Medium]
Can sm5714_fg_get_status() pass a NULL fg->psy to
power_supply_am_i_supplied()?
__power_supply_register() exposes the sysfs attributes and increments
psy->use_cnt before devm_power_supply_register() returns and assigns
fg->psy in sm5714_fg_probe():
CPU0 CPU1
sm5714_fg_probe()
devm_power_supply_register()
__power_supply_register()
device_add()
atomic_inc(&psy->use_cnt)
power_supply_show_property()
sm5714_fg_get_property(psy, ...)
sm5714_fg_get_status(fg, ...)
power_supply_am_i_supplied(fg->psy)
...
__power_supply_is_supplied_by()
supply->supplied_from
<-- NULL pointer dereference
fg->psy = ...
Passing psy from sm5714_fg_get_property() into sm5714_fg_get_status()
would avoid reading fg->psy before it is initialized.
[ ... ]
> +MODULE_AUTHOR("Asdlerto Korry <korryasdlerto@gmail.com>");
> +MODULE_DESCRIPTION("Silicon Mitus SM5714 fuel gauge driver");
> +MODULE_LICENSE("GPL");
[Severity: High]
Does building this driver with CONFIG_BATTERY_SM5714=m fail in modpost due
to a missing MODULE_IMPORT_NS("IIO_CONSUMER")? devm_iio_channel_get() and
iio_read_channel_processed() are exported in the IIO_CONSUMER symbol
namespace.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261111-sm5714-fuel-gauge-v1-0-b9d163fff6ff@gmail.com?part=2
next prev parent reply other threads:[~2026-11-11 16:12 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-11 15:34 [PATCH 0/2] power: supply: Add Silicon Mitus SM5714 fuel gauge Asdlerto Korry
2026-11-11 15:34 ` Asdlerto Korry via B4 Relay
2026-11-11 15:34 ` [PATCH 1/2] dt-bindings: " Asdlerto Korry
2026-11-11 15:34 ` Asdlerto Korry via B4 Relay
2026-11-11 15:35 ` [PATCH 2/2] power: supply: Add Silicon Mitus SM5714 fuel gauge driver Asdlerto Korry
2026-11-11 15:35 ` Asdlerto Korry via B4 Relay
2026-11-11 16:12 ` sashiko-bot [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-11-08 11:22 [PATCH 0/2] power: supply: Add Silicon Mitus SM5714 fuel gauge Nizat Mikayilli
2026-11-08 11:22 ` [PATCH 2/2] power: supply: Add Silicon Mitus SM5714 fuel gauge driver Nizat Mikayilli
2026-11-08 11:22 ` Nizat Mikayilli via B4 Relay
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=sashiko-outbox-209263@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=korryasdlerto@gmail.com \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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.