i2c: Fix NULL pointer dereference in i2c_new_probed_device
Fix a NULL pointer dereference that happened when calling i2c_new_probed_device on one of the addresses for which we use byte reads instead of quick write for detection purpose (that is: 0x30-0x37 and 0x50-0x5f). Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Jean Delvare <khali@linux-fr.org>
This commit is contained in:
parent
399d6b2653
commit
b25b791b13
1 changed files with 3 additions and 1 deletions
|
@ -1451,9 +1451,11 @@ i2c_new_probed_device(struct i2c_adapter *adap,
|
|||
if ((addr_list[i] & ~0x07) == 0x30
|
||||
|| (addr_list[i] & ~0x0f) == 0x50
|
||||
|| !i2c_check_functionality(adap, I2C_FUNC_SMBUS_QUICK)) {
|
||||
union i2c_smbus_data data;
|
||||
|
||||
if (i2c_smbus_xfer(adap, addr_list[i], 0,
|
||||
I2C_SMBUS_READ, 0,
|
||||
I2C_SMBUS_BYTE, NULL) >= 0)
|
||||
I2C_SMBUS_BYTE, &data) >= 0)
|
||||
break;
|
||||
} else {
|
||||
if (i2c_smbus_xfer(adap, addr_list[i], 0,
|
||||
|
|
Loading…
Reference in a new issue