diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-01-05 16:57:25 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-01-05 16:57:25 -0500 |
commit | c8d150761ca6d1266cbcdc1a64529759b5b6068e (patch) | |
tree | f850aa5b9d02e4581ada37685d1cec648d8832e0 | |
parent | 50a2bc5429f07ec4d53df2d287b03bdbceb281bb (diff) | |
parent | df45c712d1f4ef37714245fb75de726f4ca2bf8d (diff) |
Merge branches 'acpi-ac' and 'acpi-tpm'
* acpi-ac:
ACPI / AC: change notification handler type to ACPI_ALL_NOTIFY
* acpi-tpm:
ACPI / TPM: fix memory leak when walking ACPI namespace
-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], |