[PATCH v2 0/3] iio: adis: fix unprotected debugfs reads

Arka Mondal <[email protected]>
Newsgroups org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Four open coded file operations in three ADIS drivers are passed to
debugfs_create_file_unsafe(). None of them call debugfs_file_get(), so
debugfs_remove_recursive() does not wait for a read in progress and
unbind frees the iio_dev underneath it.

Andy Shevchenko <[email protected]> asked on v1 whether these
could use DEFINE_DEBUGFS_ATTRIBUTE() instead. They cannot, as it formats
a single u64, and these handlers print up to four registers, e.g.
"%.4x%.4x%.4x-%.4x" in adis16136. Converting them would change what the
files return.

adis16475 and adis16550 already split this way, using
debugfs_create_file() for their open coded firmware files and
debugfs_create_file_unsafe() only for the DEFINE_DEBUGFS_ATTRIBUTE ones.
This does the same for adis16480, adis16400 and adis16136.

Compile tested only; no ADIS hardware available.

Changes since v1:
1. patch 2: changelog rewritten to explain why serial_number cannot use
   DEFINE_DEBUGFS_ATTRIBUTE(). Code unchanged.
2. patches 1 and 3: unchanged, Reviewed-by added.

Link to v1:
https://lore.kernel.org/r/[email protected]

Arka Mondal (3):
  iio: imu: adis16480: fix unprotected debugfs reads
  iio: imu: adis16400: fix unprotected debugfs reads
  iio: gyro: adis16136: fix unprotected debugfs reads

 drivers/iio/gyro/adis16136.c | 2 +-
 drivers/iio/imu/adis16400.c  | 2 +-
 drivers/iio/imu/adis16480.c  | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)


base-commit: 3d6d817622b0a9721e3cc404df3469171582be13
-- 
2.55.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.