From: Jarkko Sakkinen Date: Tue, 9 Jun 2015 12:07:59 +0000 (+0300) Subject: tpm, tpm_crb: fix le64_to_cpu conversions in crb_acpi_add() X-Git-Tag: v4.1.4~102 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=510c99974fdbc18f143c41cbd461c522f5ad7164;p=users%2Fjedix%2Flinux-maple.git tpm, tpm_crb: fix le64_to_cpu conversions in crb_acpi_add() commit 49afd7289bd937401c5f7faa193054bc3c41dad6 upstream. 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 Signed-off-by: Jarkko Sakkinen Reviewed-By: Jason Gunthorpe Fixes: 30fc8d138e91 ("tpm: TPM 2.0 CRB Interface") Signed-off-by: Peter Huewe Signed-off-by: Greg Kroah-Hartman --- 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");