summaryrefslogtreecommitdiffstats
path: root/drivers/char/tpm/tpm_ppi.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-01-14 14:37:09 -0800
committerDavid S. Miller <davem@davemloft.net>2014-01-14 14:42:42 -0800
commit0a379e21c503b2ff66b44d588df9f231e9b0b9ca (patch)
tree22b875fcf4b67fcd007726f00c5fc1748ce985d0 /drivers/char/tpm/tpm_ppi.c
parenta49da8811e71c5355b52c65ee32976741d5834cd (diff)
parentfdc3452cd2c7b2bfe0f378f92123f4f9a98fa2bd (diff)
downloadlinux-stable-0a379e21c503b2ff66b44d588df9f231e9b0b9ca.tar.gz
linux-stable-0a379e21c503b2ff66b44d588df9f231e9b0b9ca.tar.bz2
linux-stable-0a379e21c503b2ff66b44d588df9f231e9b0b9ca.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'drivers/char/tpm/tpm_ppi.c')
-rw-r--r--drivers/char/tpm/tpm_ppi.c15
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";
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],