tpm_crb: Fix an error handling path in crb_acpi_add()
Some error paths don't call acpi_put_table() before returning.
Branch to the correct place instead of doing some direct return.
Fixes: 4d27328827
("tpm_crb: Add support for CRB devices based on Pluton")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Matthew Garrett <mgarrett@aurora.tech>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
This commit is contained in:
parent
708283abf8
commit
9c377852dd
@ -797,12 +797,13 @@ static int crb_acpi_add(struct acpi_device *device)
|
|||||||
FW_BUG "TPM2 ACPI table has wrong size %u for start method type %d\n",
|
FW_BUG "TPM2 ACPI table has wrong size %u for start method type %d\n",
|
||||||
buf->header.length,
|
buf->header.length,
|
||||||
ACPI_TPM2_COMMAND_BUFFER_WITH_PLUTON);
|
ACPI_TPM2_COMMAND_BUFFER_WITH_PLUTON);
|
||||||
return -EINVAL;
|
rc = -EINVAL;
|
||||||
|
goto out;
|
||||||
}
|
}
|
||||||
crb_pluton = ACPI_ADD_PTR(struct tpm2_crb_pluton, buf, sizeof(*buf));
|
crb_pluton = ACPI_ADD_PTR(struct tpm2_crb_pluton, buf, sizeof(*buf));
|
||||||
rc = crb_map_pluton(dev, priv, buf, crb_pluton);
|
rc = crb_map_pluton(dev, priv, buf, crb_pluton);
|
||||||
if (rc)
|
if (rc)
|
||||||
return rc;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->sm = sm;
|
priv->sm = sm;
|
||||||
|
Loading…
Reference in New Issue
Block a user