Skip to content

Commit

Permalink
hwmon: (lm90) Fix warnings
Browse files Browse the repository at this point in the history
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: Guenter Roeck <guenter.roeck@ericsson.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>
  • Loading branch information
Jean Delvare authored and Jean Delvare committed Nov 4, 2011
1 parent da8ebe4 commit 8dc089d
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions drivers/hwmon/lm90.c
Original file line number Diff line number Diff line change
Expand Up @@ -1117,14 +1117,12 @@ static int lm90_detect(struct i2c_client *new_client,
return -ENODEV;

/* detection and identification */
if ((man_id = i2c_smbus_read_byte_data(new_client,
LM90_REG_R_MAN_ID)) < 0
|| (chip_id = i2c_smbus_read_byte_data(new_client,
LM90_REG_R_CHIP_ID)) < 0
|| (reg_config1 = i2c_smbus_read_byte_data(new_client,
LM90_REG_R_CONFIG1)) < 0
|| (reg_convrate = i2c_smbus_read_byte_data(new_client,
LM90_REG_R_CONVRATE)) < 0)
man_id = i2c_smbus_read_byte_data(new_client, LM90_REG_R_MAN_ID);
chip_id = i2c_smbus_read_byte_data(new_client, LM90_REG_R_CHIP_ID);
reg_config1 = i2c_smbus_read_byte_data(new_client, LM90_REG_R_CONFIG1);
reg_convrate = i2c_smbus_read_byte_data(new_client,
LM90_REG_R_CONVRATE);
if (man_id < 0 || chip_id < 0 || reg_config1 < 0 || reg_convrate < 0)
return -ENODEV;

if (man_id == 0x01 || man_id == 0x5C || man_id == 0x41) {
Expand Down Expand Up @@ -1192,13 +1190,16 @@ static int lm90_detect(struct i2c_client *new_client,
* exists, both readings will reflect the same value. Otherwise,
* the readings will be different.
*/
if ((reg_emerg = i2c_smbus_read_byte_data(new_client,
MAX6659_REG_R_REMOTE_EMERG)) < 0
|| i2c_smbus_read_byte_data(new_client, LM90_REG_R_MAN_ID) < 0
|| (reg_emerg2 = i2c_smbus_read_byte_data(new_client,
MAX6659_REG_R_REMOTE_EMERG)) < 0
|| (reg_status2 = i2c_smbus_read_byte_data(new_client,
MAX6696_REG_R_STATUS2)) < 0)
reg_emerg = i2c_smbus_read_byte_data(new_client,
MAX6659_REG_R_REMOTE_EMERG);
man_id = i2c_smbus_read_byte_data(new_client,
LM90_REG_R_MAN_ID);
reg_emerg2 = i2c_smbus_read_byte_data(new_client,
MAX6659_REG_R_REMOTE_EMERG);
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;

/*
Expand Down

0 comments on commit 8dc089d

Please sign in to comment.