]> git.baikalelectronics.ru Git - kernel.git/commitdiff
tpm/tpm_crb: fix priv->cmd_size initialisation
authorManuel Lauss <manuel.lauss@gmail.com>
Mon, 19 Jun 2017 06:27:17 +0000 (08:27 +0200)
committerJames Morris <james.l.morris@oracle.com>
Thu, 6 Jul 2017 23:49:25 +0000 (09:49 +1000)
priv->cmd_size is never initialised if the cmd and rsp buffers reside
at different addresses.  Initialise it in the exit path of the function
when rsp buffer has also been successfully allocated.

Fixes: aa77ea0e43dc ("tpm/tpm_crb: cache cmd_size register value.").
Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: James Morris <james.l.morris@oracle.com>
drivers/char/tpm/tpm_crb.c

index fe42c4a0d8d1a6d283fadf611159d1968066f47c..a4ac63a21d8a051da3c336f5343b9dc72574b719 100644 (file)
@@ -514,11 +514,12 @@ static int crb_map_io(struct acpi_device *device, struct crb_priv *priv,
                goto out;
        }
 
-       priv->cmd_size = cmd_size;
-
        priv->rsp = priv->cmd;
 
 out:
+       if (!ret)
+               priv->cmd_size = cmd_size;
+
        crb_go_idle(dev, priv);
 
        return ret;