|
@@ -27,15 +27,18 @@ static char *tpm_device_name = "TPM";
|
|
|
static acpi_status ppi_callback(acpi_handle handle, u32 level, void *context,
|
|
|
void **return_value)
|
|
|
{
|
|
|
- acpi_status status;
|
|
|
+ acpi_status status = AE_OK;
|
|
|
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
|
|
|
- status = acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer);
|
|
|
- if (strstr(buffer.pointer, context) != NULL) {
|
|
|
- *return_value = handle;
|
|
|
+
|
|
|
+ if (ACPI_SUCCESS(acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer))) {
|
|
|
+ if (strstr(buffer.pointer, context) != NULL) {
|
|
|
+ *return_value = handle;
|
|
|
+ status = AE_CTRL_TERMINATE;
|
|
|
+ }
|
|
|
kfree(buffer.pointer);
|
|
|
- return AE_CTRL_TERMINATE;
|
|
|
}
|
|
|
- return AE_OK;
|
|
|
+
|
|
|
+ return status;
|
|
|
}
|
|
|
|
|
|
static inline void ppi_assign_params(union acpi_object params[4],
|