|
@@ -367,6 +367,7 @@ static int acpi_smbus_cmi_add(struct acpi_device *device)
|
|
|
{
|
|
|
struct acpi_smbus_cmi *smbus_cmi;
|
|
|
const struct acpi_device_id *id;
|
|
|
+ int ret;
|
|
|
|
|
|
smbus_cmi = kzalloc(sizeof(struct acpi_smbus_cmi), GFP_KERNEL);
|
|
|
if (!smbus_cmi)
|
|
@@ -388,8 +389,10 @@ static int acpi_smbus_cmi_add(struct acpi_device *device)
|
|
|
acpi_walk_namespace(ACPI_TYPE_METHOD, smbus_cmi->handle, 1,
|
|
|
acpi_smbus_cmi_query_methods, NULL, smbus_cmi, NULL);
|
|
|
|
|
|
- if (smbus_cmi->cap_info == 0)
|
|
|
+ if (smbus_cmi->cap_info == 0) {
|
|
|
+ ret = -ENODEV;
|
|
|
goto err;
|
|
|
+ }
|
|
|
|
|
|
snprintf(smbus_cmi->adapter.name, sizeof(smbus_cmi->adapter.name),
|
|
|
"SMBus CMI adapter %s",
|
|
@@ -400,7 +403,8 @@ static int acpi_smbus_cmi_add(struct acpi_device *device)
|
|
|
smbus_cmi->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
|
|
|
smbus_cmi->adapter.dev.parent = &device->dev;
|
|
|
|
|
|
- if (i2c_add_adapter(&smbus_cmi->adapter)) {
|
|
|
+ ret = i2c_add_adapter(&smbus_cmi->adapter);
|
|
|
+ if (ret) {
|
|
|
dev_err(&device->dev, "Couldn't register adapter!\n");
|
|
|
goto err;
|
|
|
}
|
|
@@ -410,7 +414,7 @@ static int acpi_smbus_cmi_add(struct acpi_device *device)
|
|
|
err:
|
|
|
kfree(smbus_cmi);
|
|
|
device->driver_data = NULL;
|
|
|
- return -EIO;
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
static int acpi_smbus_cmi_remove(struct acpi_device *device)
|