|
@@ -226,14 +226,6 @@ int tpm_chip_register(struct tpm_chip *chip)
|
|
if (rc)
|
|
if (rc)
|
|
goto out_err;
|
|
goto out_err;
|
|
|
|
|
|
- if (!(chip->flags & TPM_CHIP_FLAG_TPM2)) {
|
|
|
|
- rc = __compat_only_sysfs_link_entry_to_kobj(&chip->pdev->kobj,
|
|
|
|
- &chip->dev.kobj,
|
|
|
|
- "ppi");
|
|
|
|
- if (rc)
|
|
|
|
- goto out_err;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/* Make the chip available. */
|
|
/* Make the chip available. */
|
|
spin_lock(&driver_lock);
|
|
spin_lock(&driver_lock);
|
|
list_add_tail_rcu(&chip->list, &tpm_chip_list);
|
|
list_add_tail_rcu(&chip->list, &tpm_chip_list);
|
|
@@ -241,6 +233,16 @@ int tpm_chip_register(struct tpm_chip *chip)
|
|
|
|
|
|
chip->flags |= TPM_CHIP_FLAG_REGISTERED;
|
|
chip->flags |= TPM_CHIP_FLAG_REGISTERED;
|
|
|
|
|
|
|
|
+ if (!(chip->flags & TPM_CHIP_FLAG_TPM2)) {
|
|
|
|
+ rc = __compat_only_sysfs_link_entry_to_kobj(&chip->pdev->kobj,
|
|
|
|
+ &chip->dev.kobj,
|
|
|
|
+ "ppi");
|
|
|
|
+ if (rc && rc != -ENOENT) {
|
|
|
|
+ tpm_chip_unregister(chip);
|
|
|
|
+ return rc;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
return 0;
|
|
return 0;
|
|
out_err:
|
|
out_err:
|
|
tpm1_chip_unregister(chip);
|
|
tpm1_chip_unregister(chip);
|