|
@@ -117,6 +117,11 @@ static int acpi_smbus_transaction(struct acpi_smb_hc *hc, u8 protocol,
|
|
int ret = -EFAULT, i;
|
|
int ret = -EFAULT, i;
|
|
u8 temp, sz = 0;
|
|
u8 temp, sz = 0;
|
|
|
|
|
|
|
|
+ if (!hc) {
|
|
|
|
+ printk(KERN_ERR PREFIX "host controller is not configured\n");
|
|
|
|
+ return ret;
|
|
|
|
+ }
|
|
|
|
+
|
|
mutex_lock(&hc->lock);
|
|
mutex_lock(&hc->lock);
|
|
if (smb_hc_read(hc, ACPI_SMB_PROTOCOL, &temp))
|
|
if (smb_hc_read(hc, ACPI_SMB_PROTOCOL, &temp))
|
|
goto end;
|
|
goto end;
|
|
@@ -292,6 +297,7 @@ static int acpi_smbus_hc_remove(struct acpi_device *device, int type)
|
|
hc = acpi_driver_data(device);
|
|
hc = acpi_driver_data(device);
|
|
acpi_ec_remove_query_handler(hc->ec, hc->query_bit);
|
|
acpi_ec_remove_query_handler(hc->ec, hc->query_bit);
|
|
kfree(hc);
|
|
kfree(hc);
|
|
|
|
+ acpi_driver_data(device) = NULL;
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|