Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
Pull TPM bugfixes from James Morris. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: tpm, tpm_crb: fail when TPM2 ACPI table contents look corrupted tpm: Fix initialization of the cdev
This commit is contained in:
commit
3aa20508a6
|
@ -129,8 +129,9 @@ struct tpm_chip *tpmm_chip_alloc(struct device *dev,
|
|||
|
||||
device_initialize(&chip->dev);
|
||||
|
||||
chip->cdev.owner = chip->pdev->driver->owner;
|
||||
cdev_init(&chip->cdev, &tpm_fops);
|
||||
chip->cdev.owner = chip->pdev->driver->owner;
|
||||
chip->cdev.kobj.parent = &chip->dev.kobj;
|
||||
|
||||
return chip;
|
||||
}
|
||||
|
|
|
@ -233,6 +233,14 @@ static int crb_acpi_add(struct acpi_device *device)
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* At least some versions of AMI BIOS have a bug that TPM2 table has
|
||||
* zero address for the control area and therefore we must fail.
|
||||
*/
|
||||
if (!buf->control_area_pa) {
|
||||
dev_err(dev, "TPM2 ACPI table has a zero address for the control area\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (buf->hdr.length < sizeof(struct acpi_tpm2)) {
|
||||
dev_err(dev, "TPM2 ACPI table has wrong size");
|
||||
return -EINVAL;
|
||||
|
|
Loading…
Reference in New Issue