From: Axel Lin Date: Tue, 22 Mar 2011 23:34:00 +0000 (-0700) Subject: drivers/misc/hmc6352.c: fix wrong return value checking for i2c_master_recv() X-Git-Tag: v2.6.39-rc1~272 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=6f7d485e13c6c07348cf9cfd1b735fe1bcf3caa9;p=~shefty%2Frdma-dev.git drivers/misc/hmc6352.c: fix wrong return value checking for i2c_master_recv() i2c_master_recv() returns negative errno, or else the number of bytes read. Thus i2c_master_recv(client, i2c_data, 2) returns 2 instead of 1 in success case. [akpm@linux-foundation.org: make `ret' signed] Signed-off-by: Axel Lin Cc: Kalhan Trisal Cc: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/misc/hmc6352.c b/drivers/misc/hmc6352.c index 234bfcaf209..ca938fc8a8d 100644 --- a/drivers/misc/hmc6352.c +++ b/drivers/misc/hmc6352.c @@ -75,7 +75,7 @@ static ssize_t compass_heading_data_show(struct device *dev, { struct i2c_client *client = to_i2c_client(dev); unsigned char i2c_data[2]; - unsigned int ret; + int ret; mutex_lock(&compass_mutex); ret = compass_command(client, 'A'); @@ -86,7 +86,7 @@ static ssize_t compass_heading_data_show(struct device *dev, msleep(10); /* sending 'A' cmd we need to wait for 7-10 millisecs */ ret = i2c_master_recv(client, i2c_data, 2); mutex_unlock(&compass_mutex); - if (ret != 1) { + if (ret < 0) { dev_warn(dev, "i2c read data cmd failed\n"); return ret; }