From: Andy Shevchenko <andriy.shevchenko@intel.com>
To: radu.sabau@analog.com
Cc: Lars-Peter Clausen <lars@metafoo.de>,
Michael Hennerich <Michael.Hennerich@analog.com>,
Nuno Sa <nuno.sa@analog.com>, Jonathan Cameron <jic23@kernel.org>,
David Lechner <dlechner@baylibre.com>,
Andy Shevchenko <andy@kernel.org>,
Robert Budai <robert.budai@analog.com>,
Antoniu Miclaus <antoniu.miclaus@analog.com>,
Ramona Gradinariu <ramona.gradinariu@analog.com>,
Jonathan Cameron <Jonathan.Cameron@huawei.com>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] iio: imu: adis: Fix NULL pointer dereference in adis_init
Date: Fri, 20 Feb 2026 16:24:40 +0200 [thread overview]
Message-ID: <aZhuqJuPuBHSyGLk@smile.fi.intel.com> (raw)
In-Reply-To: <20260220-adis-fix-v2-1-4cc24a261306@analog.com>
On Fri, Feb 20, 2026 at 04:16:41PM +0200, Radu Sabau via B4 Relay wrote:
> The adis_init() function dereferences adis->ops to check if the
> individual function pointers (write, read, reset) are NULL, but does
> not first check if adis->ops itself is NULL.
>
> Drivers like adis16480, adis16490, adis16545 and others do not set
> custom ops and rely on adis_init() assigning the defaults. Since struct
> adis is zero-initialized by devm_iio_device_alloc(), adis->ops is NULL
> when adis_init() is called, causing a NULL pointer dereference:
>
> Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
> pc : adis_init+0xc0/0x118
> Call trace:
> adis_init+0xc0/0x118
> adis16480_probe+0xe0/0x670
>
> Fix this by checking if adis->ops is NULL before dereferencing it,
> falling through to assign the default ops in that case.
Don't throw versions too quickly. You missed a tag from colleague of yours.
> Fixes: 3b29bcee8f6f ("iio: imu: adis: Add custom ops struct")
...
> - if (!adis->ops->write && !adis->ops->read && !adis->ops->reset)
> + if (!adis->ops)
I hope you have checked that this is indeed the case and we don't need this
check anymore. (I would be glad to see it being replaced as in this patch!)
Assuming this is confirmed,
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Collect the tags and issue a new version only on demand, and not earlier
than 24h from previous one.
> adis->ops = &adis_default_ops;
> else if (!adis->ops->write || !adis->ops->read || !adis->ops->reset)
> return -EINVAL;
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2026-02-20 14:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-20 14:16 Radu Sabau via B4 Relay
2026-02-20 14:24 ` Andy Shevchenko [this message]
2026-02-22 16:48 ` Jonathan Cameron
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=aZhuqJuPuBHSyGLk@smile.fi.intel.com \
--to=andriy.shevchenko@intel.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=Michael.Hennerich@analog.com \
--cc=andy@kernel.org \
--cc=antoniu.miclaus@analog.com \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=radu.sabau@analog.com \
--cc=ramona.gradinariu@analog.com \
--cc=robert.budai@analog.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome