diff options
author | Jarkko Sakkinen <[email protected]> | 2015-06-09 15:07:59 +0300 |
---|---|---|
committer | Peter Huewe <[email protected]> | 2015-06-16 23:27:16 +0200 |
commit | 49afd7289bd937401c5f7faa193054bc3c41dad6 (patch) | |
tree | 0744d4332e88262fe8ef61f427257e21860f74b5 | |
parent | 9d75f08946e8485109458ccf16f714697c207f41 (diff) |
tpm, tpm_crb: fix le64_to_cpu conversions in crb_acpi_add()
le64_to_cpu() was applied twice to the physical addresses read from the
control area. This hasn't shown any visible regressions because CRB
driver has been tested only on the little endian platofrms so far.
Reported-by: Matt Fleming <[email protected]>
Signed-off-by: Jarkko Sakkinen <[email protected]>
Reviewed-By: Jason Gunthorpe <[email protected]>
Cc: <[email protected]>
Fixes: 30fc8d138e91 ("tpm: TPM 2.0 CRB Interface")
Signed-off-by: Peter Huewe <[email protected]>
-rw-r--r-- | drivers/char/tpm/tpm_crb.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/char/tpm/tpm_crb.c b/drivers/char/tpm/tpm_crb.c index b26ceee3585e..44f9d20c19ac 100644 --- a/drivers/char/tpm/tpm_crb.c +++ b/drivers/char/tpm/tpm_crb.c @@ -267,7 +267,7 @@ static int crb_acpi_add(struct acpi_device *device) memcpy_fromio(&pa, &priv->cca->cmd_pa, 8); pa = le64_to_cpu(pa); - priv->cmd = devm_ioremap_nocache(dev, le64_to_cpu(pa), + priv->cmd = devm_ioremap_nocache(dev, pa, ioread32(&priv->cca->cmd_size)); if (!priv->cmd) { dev_err(dev, "ioremap of the command buffer failed\n"); @@ -276,7 +276,7 @@ static int crb_acpi_add(struct acpi_device *device) memcpy_fromio(&pa, &priv->cca->rsp_pa, 8); pa = le64_to_cpu(pa); - priv->rsp = devm_ioremap_nocache(dev, le64_to_cpu(pa), + priv->rsp = devm_ioremap_nocache(dev, pa, ioread32(&priv->cca->rsp_size)); if (!priv->rsp) { dev_err(dev, "ioremap of the response buffer failed\n"); |