All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bill Wendling <morbo@google.com>
To: Jonathan Cameron <jic23@kernel.org>
Cc: "David Lechner" <dlechner@baylibre.com>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Andy Shevchenko" <andy@kernel.org>,
	"Kees Cook" <kees@kernel.org>,
	"Gustavo A. R. Silva" <gustavoars@kernel.org>,
	"Randy Dunlap" <rdunlap@infradead.org>,
	linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-hardening@vger.kernel.org,
	"Bill Wendling" <morbo@google.com>,
	codemender-patching+linux@google.com
Subject: [PATCH] iio: st_sensors: add __counted_by_ptr to struct st_sensor_settings
Date: Tue, 22 Sep 2026 11:21:11 +0000	[thread overview]
Message-ID: <20260922112111.1970872-1-morbo@google.com> (raw)

Annotate the "ch" pointer member of "struct st_sensor_settings" with the
"__counted_by_ptr" attribute. The elements of "ch" are counted by the
"num_ch" member in the same struct.

All instances of "struct st_sensor_settings" are defined as "static
const" arrays across the ST sensor core drivers. For pressure sensors,
"num_ch" is explicitly initialized with the size of the respective
channel array using "ARRAY_SIZE(...)" during static definition.

For accelerometer, gyroscope, and magnetometer sensors, "num_ch" is not
explicitly initialized (and thus defaults to 0). This is because those
drivers hardcode the channel count to "ST_SENSORS_NUMBER_ALL_CHANNELS"
rather than using "num_ch" from the settings struct.

Since these structures are static const, both "ch" and "num_ch" are
fully initialized at compile time and available immediately at boot
time.  The only accesses to the "ch" field of "st_sensor_settings" occur
when assigning it to "indio_dev->channels" during device probing.

Because "sensor_settings->ch" is never dereferenced or accessed as an
array, adding the "__counted_by_ptr" annotation does not cause any
runtime panics or false-positive bounds checks under KASAN or UBSAN.

Cc: codemender-patching+linux@google.com
Assisted-by: LLM
Signed-off-by: Bill Wendling <morbo@google.com>
---
 include/linux/iio/common/st_sensors.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/iio/common/st_sensors.h b/include/linux/iio/common/st_sensors.h
index 1ba496f0fea5..6e914ed49529 100644
--- a/include/linux/iio/common/st_sensors.h
+++ b/include/linux/iio/common/st_sensors.h
@@ -206,7 +206,7 @@ struct st_sensor_settings {
 	u8 wai;
 	u8 wai_addr;
 	char sensors_supported[ST_SENSORS_MAX_4WAI][ST_SENSORS_MAX_NAME];
-	struct iio_chan_spec *ch;
+	struct iio_chan_spec *ch __counted_by_ptr(num_ch);
 	int num_ch;
 	struct st_sensor_odr odr;
 	struct st_sensor_power pw;
-- 
2.55.0.1082.g2b9226bbc0-goog


             reply	other threads:[~2026-09-22 11:21 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-22 11:21 Bill Wendling [this message]
2026-09-22 14:36 ` [PATCH] iio: st_sensors: add __counted_by_ptr to struct st_sensor_settings Nuno Sá
2026-09-23  5:44 ` Gustavo A. R. Silva
2026-09-23  7:52 ` Kees Cook
2026-09-23 19:34   ` Bill Wendling
2026-09-23 22:06     ` Bill Wendling
2026-09-25  2:49       ` 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=20260922112111.1970872-1-morbo@google.com \
    --to=morbo@google.com \
    --cc=andy@kernel.org \
    --cc=codemender-patching+linux@google.com \
    --cc=dlechner@baylibre.com \
    --cc=gustavoars@kernel.org \
    --cc=jic23@kernel.org \
    --cc=kees@kernel.org \
    --cc=linux-hardening@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nuno.sa@analog.com \
    --cc=rdunlap@infradead.org \
    /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.