diff options
| -rw-r--r-- | drivers/char/tpm/tpm_ppi.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/char/tpm/tpm_ppi.c b/drivers/char/tpm/tpm_ppi.c index 8e562dc65601..e1f3337a0cf9 100644 --- a/drivers/char/tpm/tpm_ppi.c +++ b/drivers/char/tpm/tpm_ppi.c | |||
| @@ -27,15 +27,18 @@ static char *tpm_device_name = "TPM"; | |||
| 27 | static acpi_status ppi_callback(acpi_handle handle, u32 level, void *context, | 27 | static acpi_status ppi_callback(acpi_handle handle, u32 level, void *context, |
| 28 | void **return_value) | 28 | void **return_value) |
| 29 | { | 29 | { |
| 30 | acpi_status status; | 30 | acpi_status status = AE_OK; |
| 31 | struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; | 31 | struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; |
| 32 | status = acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer); | 32 | |
| 33 | if (strstr(buffer.pointer, context) != NULL) { | 33 | if (ACPI_SUCCESS(acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer))) { |
| 34 | *return_value = handle; | 34 | if (strstr(buffer.pointer, context) != NULL) { |
| 35 | *return_value = handle; | ||
| 36 | status = AE_CTRL_TERMINATE; | ||
| 37 | } | ||
| 35 | kfree(buffer.pointer); | 38 | kfree(buffer.pointer); |
| 36 | return AE_CTRL_TERMINATE; | ||
| 37 | } | 39 | } |
| 38 | return AE_OK; | 40 | |
| 41 | return status; | ||
| 39 | } | 42 | } |
| 40 | 43 | ||
| 41 | static inline void ppi_assign_params(union acpi_object params[4], | 44 | static inline void ppi_assign_params(union acpi_object params[4], |
