summaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorStefan Berger <stefanb@linux.vnet.ibm.com>2011-11-11 18:57:05 +0100
committerRajiv Andrade <srajiv@linux.vnet.ibm.com>2011-11-16 12:43:01 +0100
commit7f326ed7ff221a109bf89288bf6c8f0142e3e75c (patch)
tree89e3901917831a53cd3e8c805c9984e9ba5a5f60 /drivers/char
parenttpm: Introduce function to poll for result of self test (diff)
downloadlinux-7f326ed7ff221a109bf89288bf6c8f0142e3e75c.tar.xz
linux-7f326ed7ff221a109bf89288bf6c8f0142e3e75c.zip
tpm_tis: Check return code from getting timeouts/durations
Check the return code from getting the TPM's timeouts and durations and reject the driver if they could not be read. Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/tpm/tpm_tis.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index d30d5c3c6c02..34832bc74649 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -614,7 +614,11 @@ static int tpm_tis_init(struct device *dev, resource_size_t start,
dev_dbg(dev, "\tData Avail Int Support\n");
/* get the timeouts before testing for irqs */
- tpm_get_timeouts(chip);
+ if (tpm_get_timeouts(chip)) {
+ dev_err(dev, "Could not get TPM timeouts and durations\n");
+ rc = -ENODEV;
+ goto out_err;
+ }
if (tpm_do_selftest(chip)) {
dev_err(dev, "TPM self test failed\n");