tpm_crb: tpm2_shutdown() must be called before tpm_chip_unregister()
authorJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Thu, 18 Feb 2016 20:11:29 +0000 (22:11 +0200)
committerSasha Levin <sasha.levin@oracle.com>
Mon, 18 Apr 2016 12:50:37 +0000 (08:50 -0400)
[ Upstream commit 99cda8cb4639de81cde785b5bab9bc52e916e594 ]

Wrong call order.

Reported-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Fixes: 74d6b3ceaa17
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
cc: stable@vger.kernel.org
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/char/tpm/tpm_crb.c

index 2b971b3e5c1cfc285ebde4aef3728a9b0a229098..b02d4b160403109c921c4dbba6d82e77c8fb39ab 100644 (file)
@@ -309,11 +309,11 @@ static int crb_acpi_remove(struct acpi_device *device)
        struct device *dev = &device->dev;
        struct tpm_chip *chip = dev_get_drvdata(dev);
 
-       tpm_chip_unregister(chip);
-
        if (chip->flags & TPM_CHIP_FLAG_TPM2)
                tpm2_shutdown(chip, TPM2_SU_CLEAR);
 
+       tpm_chip_unregister(chip);
+
        return 0;
 }