diff options
author | Axel Lin <axel.lin@gmail.com> | 2011-03-22 19:34:00 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-22 20:44:10 -0400 |
commit | 6f7d485e13c6c07348cf9cfd1b735fe1bcf3caa9 (patch) | |
tree | e29567aa27363fc8072a355d89d951ef95c41920 /drivers/misc | |
parent | 4e6735992392ecd393674119aef9ec7bff9be5b0 (diff) |
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 <axel.lin@gmail.com>
Cc: Kalhan Trisal <kalhan.trisal@intel.com>
Cc: Alan Cox <alan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/misc')
-rw-r--r-- | drivers/misc/hmc6352.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/misc/hmc6352.c b/drivers/misc/hmc6352.c index 234bfcaf2099..ca938fc8a8d6 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, | |||
75 | { | 75 | { |
76 | struct i2c_client *client = to_i2c_client(dev); | 76 | struct i2c_client *client = to_i2c_client(dev); |
77 | unsigned char i2c_data[2]; | 77 | unsigned char i2c_data[2]; |
78 | unsigned int ret; | 78 | int ret; |
79 | 79 | ||
80 | mutex_lock(&compass_mutex); | 80 | mutex_lock(&compass_mutex); |
81 | ret = compass_command(client, 'A'); | 81 | ret = compass_command(client, 'A'); |
@@ -86,7 +86,7 @@ static ssize_t compass_heading_data_show(struct device *dev, | |||
86 | msleep(10); /* sending 'A' cmd we need to wait for 7-10 millisecs */ | 86 | msleep(10); /* sending 'A' cmd we need to wait for 7-10 millisecs */ |
87 | ret = i2c_master_recv(client, i2c_data, 2); | 87 | ret = i2c_master_recv(client, i2c_data, 2); |
88 | mutex_unlock(&compass_mutex); | 88 | mutex_unlock(&compass_mutex); |
89 | if (ret != 1) { | 89 | if (ret < 0) { |
90 | dev_warn(dev, "i2c read data cmd failed\n"); | 90 | dev_warn(dev, "i2c read data cmd failed\n"); |
91 | return ret; | 91 | return ret; |
92 | } | 92 | } |