Commit 2f9f5377 authored by Stefan Berger's avatar Stefan Berger Committed by Jarkko Sakkinen

tpm: Introduce TPM_CHIP_FLAG_VIRTUAL

Introduce TPM_CHIP_FLAG_VIRTUAL to be used when the chip device has no
parent device.

Prevent sysfs entries requiring a parent device from being created.
Signed-off-by: default avatarStefan Berger <stefanb@linux.vnet.ibm.com>
Reviewed-by: default avatarJason Gunthorpe <jgunthorpe@obsidianresearch.com>
Reviewed-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
parent 062807f2
...@@ -181,6 +181,9 @@ struct tpm_chip *tpm_chip_alloc(struct device *dev, ...@@ -181,6 +181,9 @@ struct tpm_chip *tpm_chip_alloc(struct device *dev,
if (rc) if (rc)
goto out; goto out;
if (!dev)
chip->flags |= TPM_CHIP_FLAG_VIRTUAL;
cdev_init(&chip->cdev, &tpm_fops); cdev_init(&chip->cdev, &tpm_fops);
chip->cdev.owner = THIS_MODULE; chip->cdev.owner = THIS_MODULE;
chip->cdev.kobj.parent = &chip->dev.kobj; chip->cdev.kobj.parent = &chip->dev.kobj;
...@@ -298,7 +301,7 @@ static void tpm_del_legacy_sysfs(struct tpm_chip *chip) ...@@ -298,7 +301,7 @@ static void tpm_del_legacy_sysfs(struct tpm_chip *chip)
{ {
struct attribute **i; struct attribute **i;
if (chip->flags & TPM_CHIP_FLAG_TPM2) if (chip->flags & (TPM_CHIP_FLAG_TPM2 | TPM_CHIP_FLAG_VIRTUAL))
return; return;
sysfs_remove_link(&chip->dev.parent->kobj, "ppi"); sysfs_remove_link(&chip->dev.parent->kobj, "ppi");
...@@ -316,7 +319,7 @@ static int tpm_add_legacy_sysfs(struct tpm_chip *chip) ...@@ -316,7 +319,7 @@ static int tpm_add_legacy_sysfs(struct tpm_chip *chip)
struct attribute **i; struct attribute **i;
int rc; int rc;
if (chip->flags & TPM_CHIP_FLAG_TPM2) if (chip->flags & (TPM_CHIP_FLAG_TPM2 | TPM_CHIP_FLAG_VIRTUAL))
return 0; return 0;
rc = __compat_only_sysfs_link_entry_to_kobj( rc = __compat_only_sysfs_link_entry_to_kobj(
......
...@@ -138,6 +138,7 @@ enum tpm_chip_flags { ...@@ -138,6 +138,7 @@ enum tpm_chip_flags {
TPM_CHIP_FLAG_REGISTERED = BIT(0), TPM_CHIP_FLAG_REGISTERED = BIT(0),
TPM_CHIP_FLAG_TPM2 = BIT(1), TPM_CHIP_FLAG_TPM2 = BIT(1),
TPM_CHIP_FLAG_IRQ = BIT(2), TPM_CHIP_FLAG_IRQ = BIT(2),
TPM_CHIP_FLAG_VIRTUAL = BIT(3),
}; };
struct tpm_chip { struct tpm_chip {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment