[PATCH 00/31] hwmon: convert i2c_smbus_read_block_data() users to pass buffer length

From: Dmitry Torokhov

Date: Sat Oct 24 2026 - 23:06:34 EST


Convert all callers of i2c_smbus_read_block_data() across the hwmon
and PMBus subsystems to pass destination buffer sizes, adopting the
4-argument form introduced in commit 68f382641f8c ("i2c: smbus: make
i2c_smbus_read_block_data() safer").

For drivers that used intermediate bounce buffers (lineage-pem, lm93,
and pt5161l), redundant buffer allocations and memcpy() calls are
dropped so data is read directly into target structures.

For drivers performing string comparisons on the read data
(acbel-fsg032, bpa-rs600, ltc4286, max15301, pim4328, and stpddc60),
ensure the destination buffer is explicitly NUL-terminated before
comparison, and pass a length that reserves space for the terminator.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
---
Dmitry Torokhov (31):
hwmon: (lineage-pem) use 4-argument i2c_smbus_read_block_data()
hwmon: (lm93) use 4-argument i2c_smbus_read_block_data()
hwmon: (pt5161l) use 4-argument i2c_smbus_read_block_data()
hwmon: (kb9002) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/acbel-fsg032) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/adm1266) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/aps-379) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/bpa-rs600) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/crps) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/d1u74t) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/dps920ab) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/fsp-3y) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/ibm-cffps) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/inspur-ipsps) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/ir35221) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/lt7182s) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/ltc4286) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/lx1308) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/max15301) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/max16601) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/max20730) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/mp5920) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/pim4328) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/pxe1610) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/q54sj108a2) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/stpddc60) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/tps53679) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/ucd9000) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/ucd9200) use 4-argument i2c_smbus_read_block_data()
hwmon: (pmbus/zl6100) use 4-argument i2c_smbus_read_block_data()

drivers/hwmon/kb9002.c | 6 ++++--
drivers/hwmon/lineage-pem.c | 17 ++++++-----------
drivers/hwmon/lm93.c | 12 ++----------
drivers/hwmon/pmbus/acbel-fsg032.c | 16 +++++++++-------
drivers/hwmon/pmbus/adm1266.c | 25 ++++++++++++++++---------
drivers/hwmon/pmbus/aps-379.c | 3 ++-
drivers/hwmon/pmbus/bpa-rs600.c | 5 +++--
drivers/hwmon/pmbus/crps.c | 5 +++--
drivers/hwmon/pmbus/d1u74t.c | 8 +++++---
drivers/hwmon/pmbus/dps920ab.c | 6 ++++--
drivers/hwmon/pmbus/fsp-3y.c | 3 ++-
drivers/hwmon/pmbus/ibm-cffps.c | 5 +++--
drivers/hwmon/pmbus/inspur-ipsps.c | 4 ++--
drivers/hwmon/pmbus/ir35221.c | 6 ++++--
drivers/hwmon/pmbus/lt7182s.c | 6 ++++--
drivers/hwmon/pmbus/ltc4286.c | 8 ++++++--
drivers/hwmon/pmbus/lx1308.c | 9 ++++++---
drivers/hwmon/pmbus/max15301.c | 4 +++-
drivers/hwmon/pmbus/max16601.c | 7 ++++---
drivers/hwmon/pmbus/max20730.c | 9 ++++++---
drivers/hwmon/pmbus/mp5920.c | 3 ++-
drivers/hwmon/pmbus/pim4328.c | 4 +++-
drivers/hwmon/pmbus/pmbus_core.c | 3 ++-
drivers/hwmon/pmbus/pxe1610.c | 2 +-
drivers/hwmon/pmbus/q54sj108a2.c | 27 ++++++++++++++++++---------
drivers/hwmon/pmbus/stpddc60.c | 4 +++-
drivers/hwmon/pmbus/tps53679.c | 9 ++++++---
drivers/hwmon/pmbus/ucd9000.c | 8 +++++---
drivers/hwmon/pmbus/ucd9200.c | 4 ++--
drivers/hwmon/pmbus/zl6100.c | 2 +-
drivers/hwmon/pt5161l.c | 5 ++---
31 files changed, 139 insertions(+), 96 deletions(-)
---
base-commit: 20a33c6b6cbe7e4805dfb6cd68816937443aa148
change-id: 20261022-hwmon-i2c-smbus-read-block-data-554b91958a09

Thanks.

--
Dmitry