Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 86effbe0 authored by Dan Carpenter's avatar Dan Carpenter Committed by Mark Brown
Browse files

regmap-i2c: Off by one in regmap_i2c_smbus_i2c_read/write()



The commit message says that we are allowed to read and write up to 32
bytes but the code only allows us to write 31 bytes.  In other words,
the ">=" should be changed to ">".  But this is already checked in
regmap_raw_read()/write() so we can just remove the if statemetents.

Fixes: 29332534 ("regmap-i2c: Add smbus i2c block support")
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent a75de772
Loading
Loading
Loading
Loading
+0 −4
Original line number Original line Diff line number Diff line
@@ -217,8 +217,6 @@ static int regmap_i2c_smbus_i2c_write(void *context, const void *data,


	if (count < 1)
	if (count < 1)
		return -EINVAL;
		return -EINVAL;
	if (count >= I2C_SMBUS_BLOCK_MAX)
		return -E2BIG;


	--count;
	--count;
	return i2c_smbus_write_i2c_block_data(i2c, ((u8 *)data)[0], count,
	return i2c_smbus_write_i2c_block_data(i2c, ((u8 *)data)[0], count,
@@ -235,8 +233,6 @@ static int regmap_i2c_smbus_i2c_read(void *context, const void *reg,


	if (reg_size != 1 || val_size < 1)
	if (reg_size != 1 || val_size < 1)
		return -EINVAL;
		return -EINVAL;
	if (val_size >= I2C_SMBUS_BLOCK_MAX)
		return -E2BIG;


	ret = i2c_smbus_read_i2c_block_data(i2c, ((u8 *)reg)[0], val_size, val);
	ret = i2c_smbus_read_i2c_block_data(i2c, ((u8 *)reg)[0], val_size, val);
	if (ret == val_size)
	if (ret == val_size)