Skip to content

Commit

Permalink
hwmon: (adm1275) Free allocated memory if probe function fails
Browse files Browse the repository at this point in the history
Probe function did not free allocated memory if it failed. Fix it.

Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Reviewed-by: Robert Coulson <robert.coulson@ericsson.com>
  • Loading branch information
Guenter Roeck committed Jul 1, 2011
1 parent 7f2c066 commit 3b33ca4
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions drivers/hwmon/adm1275.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ static int adm1275_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
int config;
int ret;
struct pmbus_driver_info *info;

if (!i2c_check_functionality(client->adapter,
Expand All @@ -43,8 +44,10 @@ static int adm1275_probe(struct i2c_client *client,
return -ENOMEM;

config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG);
if (config < 0)
return config;
if (config < 0) {
ret = config;
goto err_mem;
}

info->pages = 1;
info->direct[PSC_VOLTAGE_IN] = true;
Expand Down Expand Up @@ -76,7 +79,14 @@ static int adm1275_probe(struct i2c_client *client,
else
info->func[0] |= PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT;

return pmbus_do_probe(client, id, info);
ret = pmbus_do_probe(client, id, info);
if (ret)
goto err_mem;
return 0;

err_mem:
kfree(info);
return ret;
}

static int adm1275_remove(struct i2c_client *client)
Expand Down

0 comments on commit 3b33ca4

Please sign in to comment.