Skip to content

Commit

Permalink
hwmon: (smsc47b397) Fix compiler warning
Browse files Browse the repository at this point in the history
Some configurations produce the following compiler warning:

drivers/hwmon/smsc47b397.c: In function 'smsc47b397_init':
drivers/hwmon/smsc47b397.c:385: warning: 'address' may be used uninitialized in this function

While this is a false positive, it can easily be fixed by overloading the return
value from smsc47b397_find with both address and error return code (the address
is an unsigned short and thus never negative). This also reduces module size by
a few bytes (64 bytes for x86_64).

Cc: Mark M. Hoffman <mhoffman@lightlink.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Robert Coulson <robert.coulson@ericsson.com>
Acked-by: Jean Delvare <khali@linux-fr.org>
  • Loading branch information
Guenter Roeck authored and Guenter Roeck committed Apr 9, 2012
1 parent 0034102 commit 8528e07
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions drivers/hwmon/smsc47b397.c
Original file line number Diff line number Diff line change
Expand Up @@ -343,10 +343,11 @@ static int __init smsc47b397_device_add(unsigned short address)
return err;
}

static int __init smsc47b397_find(unsigned short *addr)
static int __init smsc47b397_find(void)
{
u8 id, rev;
char *name;
unsigned short addr;

superio_enter();
id = force_id ? force_id : superio_inb(SUPERIO_REG_DEVID);
Expand All @@ -370,24 +371,25 @@ static int __init smsc47b397_find(unsigned short *addr)
rev = superio_inb(SUPERIO_REG_DEVREV);

superio_select(SUPERIO_REG_LD8);
*addr = (superio_inb(SUPERIO_REG_BASE_MSB) << 8)
addr = (superio_inb(SUPERIO_REG_BASE_MSB) << 8)
| superio_inb(SUPERIO_REG_BASE_LSB);

pr_info("found SMSC %s (base address 0x%04x, revision %u)\n",
name, *addr, rev);
name, addr, rev);

superio_exit();
return 0;
return addr;
}

static int __init smsc47b397_init(void)
{
unsigned short address;
int ret;

ret = smsc47b397_find(&address);
if (ret)
ret = smsc47b397_find();
if (ret < 0)
return ret;
address = ret;

ret = platform_driver_register(&smsc47b397_driver);
if (ret)
Expand Down

0 comments on commit 8528e07

Please sign in to comment.