All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Chris Morgan" <macroalpha82@gmail.com>
Cc: conor+dt@kernel.org, devicetree@vger.kernel.org, robh@kernel.org
Subject: Re: [PATCH V10 3/9] iio: imu: inv_icm42607: Add inv_icm42607 Core Driver
Date: Thu, 04 Jun 2026 20:45:07 +0000	[thread overview]
Message-ID: <20260604204508.126881F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260604201832.60656-4-macroalpha82@gmail.com>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The driver state structure `st` is never saved to the device's drvdata, leading to a guaranteed NULL pointer dereference in PM callbacks.
- [Low] Redundant error code argument in `dev_err_probe()` format string.
--

commit d1ce5988d50518ee3fa99e6870abfe673fb42169
Author: Chris Morgan <macromorgan@hotmail.com>

    iio: imu: inv_icm42607: Add inv_icm42607 Core Driver
    
    Add the core component of a new inv_icm42607 driver. This includes
    a few setup functions and the full register definition in the
    header file.

> diff --git a/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c b/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c
> new file mode 100644
> index 0000000000000..74d4cb03f7b86
> --- /dev/null
> +++ b/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c

[ ... ]

> +int inv_icm42607_core_probe(struct regmap *regmap,
> +			    const struct inv_icm42607_hw *hw,
> +			    inv_icm42607_bus_setup bus_setup)
> +{
> +	struct device *dev = regmap_get_device(regmap);
> +	struct inv_icm42607_state *st;
> +	int ret;
> +
> +	st = devm_kzalloc(dev, sizeof(*st), GFP_KERNEL);
> +	if (!st)
> +		return -ENOMEM;
> +
> +	ret = devm_mutex_init(dev, &st->lock);
> +	if (ret)
> +		return ret;
> +
> +	st->hw = hw;
> +	st->map = regmap;
> +
> +	ret = iio_read_mount_matrix(dev, &st->orientation);
> +	if (ret)
> +		return dev_err_probe(dev, ret,
> +				     "failed to retrieve mounting matrix %d\n", ret);

[Severity: Low]
This isn't a bug, but is it necessary to include the %d format specifier and
ret argument in this dev_err_probe() call?

The dev_err_probe() API natively prefixes the log message with the provided
error code, so passing it as an explicit format argument might result in the
error code being printed twice.

> +
> +	ret = devm_regulator_get_enable(dev, "vdd");
> +	if (ret)
> +		return dev_err_probe(dev, ret,
> +				     "Failed to get vdd regulator\n");

[ ... ]

> +	/* Setup chip registers (includes WHOAMI check, reset check, bus setup) */
> +	ret = inv_icm42607_setup(st, bus_setup);
> +	if (ret)
> +		return ret;
> +
> +	return 0;
> +}

[Severity: High]
Should this code save the driver state structure to the device's drvdata?

Because runtime PM is enabled at the end of the driver series,
inv_icm42607_runtime_suspend() will automatically trigger after the
autosuspend delay.

It calls dev_get_drvdata(dev) to retrieve the state structure, which will
return NULL since it was never set here.

Could this lead to a NULL pointer dereference shortly after initialization
when the PM callbacks try to access the state structure?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260604201832.60656-1-macroalpha82@gmail.com?part=3

  reply	other threads:[~2026-06-04 20:45 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-04 20:18 [PATCH V10 0/9] Add Invensense ICM42607 Chris Morgan
2026-06-04 20:18 ` Chris Morgan
2026-06-04 20:18 ` [PATCH V10 1/9] dt-bindings: iio: imu: icm42600: Add mount-matrix to icm42600 Chris Morgan
2026-06-04 20:18   ` Chris Morgan
2026-06-04 20:18 ` [PATCH V10 2/9] dt-bindings: iio: imu: icm42600: Add icm42607 Chris Morgan
2026-06-04 20:18   ` Chris Morgan
2026-06-05 10:03   ` Krzysztof Kozlowski
2026-06-05 10:03     ` Krzysztof Kozlowski
2026-06-04 20:18 ` [PATCH V10 3/9] iio: imu: inv_icm42607: Add inv_icm42607 Core Driver Chris Morgan
2026-06-04 20:18   ` Chris Morgan
2026-06-04 20:45   ` sashiko-bot [this message]
2026-06-05 16:08   ` Andy Shevchenko
2026-06-05 16:08     ` Andy Shevchenko
2026-06-04 20:18 ` [PATCH V10 4/9] iio: imu: inv_icm42607: Add I2C and SPI For icm42607 Chris Morgan
2026-06-04 20:18   ` Chris Morgan
2026-06-04 20:18 ` [PATCH V10 5/9] iio: imu: inv_icm42607: Add PM support for icm42607 Chris Morgan
2026-06-04 20:18   ` Chris Morgan
2026-06-04 21:17   ` sashiko-bot
2026-06-04 20:18 ` [PATCH V10 6/9] iio: imu: inv_icm42607: Add Temp Support in icm42607 Chris Morgan
2026-06-04 20:18   ` Chris Morgan
2026-06-04 21:34   ` sashiko-bot
2026-06-04 20:18 ` [PATCH V10 7/9] iio: imu: inv_icm42607: Add Accelerometer for icm42607 Chris Morgan
2026-06-04 20:18   ` Chris Morgan
2026-06-04 21:45   ` sashiko-bot
2026-06-04 20:18 ` [PATCH V10 8/9] iio: imu: inv_icm42607: Add Gyroscope to icm42607 Chris Morgan
2026-06-04 20:18   ` Chris Morgan
2026-06-04 22:02   ` sashiko-bot
2026-06-04 20:18 ` [PATCH V10 9/9] arm64: dts: rockchip: Add icm42607p IMU for RG-DS Chris Morgan
2026-06-04 20:18   ` Chris Morgan

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=20260604204508.126881F00893@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=macroalpha82@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.