diff options
author | James Morris <james.l.morris@oracle.com> | 2015-07-15 07:46:59 -0400 |
---|---|---|
committer | James Morris <james.l.morris@oracle.com> | 2015-07-15 07:46:59 -0400 |
commit | 91ef5ccd54a2f22b2593bb6e8c97fc26c74b7f30 (patch) | |
tree | ed1488468bd0f7493e6f92e943ad516df180c831 | |
parent | f760b87f8f12eb262f14603e65042996fe03720e (diff) | |
parent | b371616b8537d6450ebca0819defbf53452bebf3 (diff) |
Merge tag 'tpm-fixes-for-4.2-rc2' of https://github.com/PeterHuewe/linux-tpmdd into for-linus
-rw-r--r-- | drivers/char/tpm/tpm-chip.c | 3 | ||||
-rw-r--r-- | drivers/char/tpm/tpm_crb.c | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c index 283f00a7f036..1082d4bb016a 100644 --- a/drivers/char/tpm/tpm-chip.c +++ b/drivers/char/tpm/tpm-chip.c | |||
@@ -129,8 +129,9 @@ struct tpm_chip *tpmm_chip_alloc(struct device *dev, | |||
129 | 129 | ||
130 | device_initialize(&chip->dev); | 130 | device_initialize(&chip->dev); |
131 | 131 | ||
132 | chip->cdev.owner = chip->pdev->driver->owner; | ||
133 | cdev_init(&chip->cdev, &tpm_fops); | 132 | cdev_init(&chip->cdev, &tpm_fops); |
133 | chip->cdev.owner = chip->pdev->driver->owner; | ||
134 | chip->cdev.kobj.parent = &chip->dev.kobj; | ||
134 | 135 | ||
135 | return chip; | 136 | return chip; |
136 | } | 137 | } |
diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c index 44f9d20c19ac..1267322595da 100644 --- a/drivers/char/tpm/tpm_crb.c +++ b/drivers/char/tpm/tpm_crb.c | |||
@@ -233,6 +233,14 @@ static int crb_acpi_add(struct acpi_device *device) | |||
233 | return -ENODEV; | 233 | return -ENODEV; |
234 | } | 234 | } |
235 | 235 | ||
236 | /* At least some versions of AMI BIOS have a bug that TPM2 table has | ||
237 | * zero address for the control area and therefore we must fail. | ||
238 | */ | ||
239 | if (!buf->control_area_pa) { | ||
240 | dev_err(dev, "TPM2 ACPI table has a zero address for the control area\n"); | ||
241 | return -EINVAL; | ||
242 | } | ||
243 | |||
236 | if (buf->hdr.length < sizeof(struct acpi_tpm2)) { | 244 | if (buf->hdr.length < sizeof(struct acpi_tpm2)) { |
237 | dev_err(dev, "TPM2 ACPI table has wrong size"); | 245 | dev_err(dev, "TPM2 ACPI table has wrong size"); |
238 | return -EINVAL; | 246 | return -EINVAL; |