[PATCH] i2c: read/write_reg: don't assume client->dev to be valid
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Mon Jan 22 02:59:58 PST 2018
When using the barebox commands i2c_read or i2c_write the client pointer
passed to the respective function isn't completely initialized. This
makes
dev_dbg(&client->dev, ...);
choke as it dereferences client->dev.driver->name with
client->dev.driver being a random value.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
---
drivers/i2c/i2c.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/i2c/i2c.c b/drivers/i2c/i2c.c
index fa2c0cd13697..e9e757558561 100644
--- a/drivers/i2c/i2c.c
+++ b/drivers/i2c/i2c.c
@@ -184,7 +184,7 @@ int i2c_read_reg(struct i2c_client *client, u32 addr, u8 *buf, u16 count)
msg->len = i;
status = i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg));
- dev_dbg(&client->dev, "%s: %u@%u --> %d\n", __func__,
+ dev_dbg(&client->adapter->dev, "%s: %u@%u --> %d\n", __func__,
count, addr, status);
if (status == ARRAY_SIZE(msg))
@@ -217,7 +217,7 @@ int i2c_write_reg(struct i2c_client *client, u32 addr, const u8 *buf, u16 count)
memcpy(msg->buf + i, buf, count);
status = i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg));
- dev_dbg(&client->dev, "%s: %u@%u --> %d\n", __func__,
+ dev_dbg(&client->adapter->dev, "%s: %u@%u --> %d\n", __func__,
count, addr, status);
if (status == ARRAY_SIZE(msg))
--
2.11.0
More information about the barebox
mailing list