Commit 8dc089d6 authored by Jean Delvare's avatar Jean Delvare Committed by Jean Delvare

hwmon: (lm90) Fix warnings

With some configuration option combinations, we get the following
warnings:

drivers/hwmon/lm90.c: In function 'lm90_detect':
drivers/hwmon/lm90.c:1114: warning: 'chip_id' may be used uninitialized
in this function
drivers/hwmon/lm90.c:1114: warning: 'reg_config1' may be used
uninitialized in this function
drivers/hwmon/lm90.c:1114: warning: 'reg_convrate' may be used
uninitialized in this function
drivers/hwmon/lm90.c:1187: warning: 'reg_emerg2' may be used
uninitialized in this function
drivers/hwmon/lm90.c:1187: warning: 'reg_status2' may be used
uninitialized in this function

We can solve these easily by reading the register values first and
checking for errors later. These errors should be very rare, even in
the case of failed detection, so this change has no impact on
performance. And this makes checkpatch.pl happier.
Reported-by: default avatarGuenter Roeck <guenter.roeck@ericsson.com>
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Acked-by: default avatarGuenter Roeck <guenter.roeck@ericsson.com>
parent da8ebe4e
...@@ -1117,14 +1117,12 @@ static int lm90_detect(struct i2c_client *new_client, ...@@ -1117,14 +1117,12 @@ static int lm90_detect(struct i2c_client *new_client,
return -ENODEV; return -ENODEV;
/* detection and identification */ /* detection and identification */
if ((man_id = i2c_smbus_read_byte_data(new_client, man_id = i2c_smbus_read_byte_data(new_client, LM90_REG_R_MAN_ID);
LM90_REG_R_MAN_ID)) < 0 chip_id = i2c_smbus_read_byte_data(new_client, LM90_REG_R_CHIP_ID);
|| (chip_id = i2c_smbus_read_byte_data(new_client, reg_config1 = i2c_smbus_read_byte_data(new_client, LM90_REG_R_CONFIG1);
LM90_REG_R_CHIP_ID)) < 0 reg_convrate = i2c_smbus_read_byte_data(new_client,
|| (reg_config1 = i2c_smbus_read_byte_data(new_client, LM90_REG_R_CONVRATE);
LM90_REG_R_CONFIG1)) < 0 if (man_id < 0 || chip_id < 0 || reg_config1 < 0 || reg_convrate < 0)
|| (reg_convrate = i2c_smbus_read_byte_data(new_client,
LM90_REG_R_CONVRATE)) < 0)
return -ENODEV; return -ENODEV;
if (man_id == 0x01 || man_id == 0x5C || man_id == 0x41) { if (man_id == 0x01 || man_id == 0x5C || man_id == 0x41) {
...@@ -1192,13 +1190,16 @@ static int lm90_detect(struct i2c_client *new_client, ...@@ -1192,13 +1190,16 @@ static int lm90_detect(struct i2c_client *new_client,
* exists, both readings will reflect the same value. Otherwise, * exists, both readings will reflect the same value. Otherwise,
* the readings will be different. * the readings will be different.
*/ */
if ((reg_emerg = i2c_smbus_read_byte_data(new_client, reg_emerg = i2c_smbus_read_byte_data(new_client,
MAX6659_REG_R_REMOTE_EMERG)) < 0 MAX6659_REG_R_REMOTE_EMERG);
|| i2c_smbus_read_byte_data(new_client, LM90_REG_R_MAN_ID) < 0 man_id = i2c_smbus_read_byte_data(new_client,
|| (reg_emerg2 = i2c_smbus_read_byte_data(new_client, LM90_REG_R_MAN_ID);
MAX6659_REG_R_REMOTE_EMERG)) < 0 reg_emerg2 = i2c_smbus_read_byte_data(new_client,
|| (reg_status2 = i2c_smbus_read_byte_data(new_client, MAX6659_REG_R_REMOTE_EMERG);
MAX6696_REG_R_STATUS2)) < 0) reg_status2 = i2c_smbus_read_byte_data(new_client,
MAX6696_REG_R_STATUS2);
if (reg_emerg < 0 || man_id < 0 || reg_emerg2 < 0
|| reg_status2 < 0)
return -ENODEV; return -ENODEV;
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment