From: Sasha Levin Date: Thu, 26 Sep 2019 23:23:18 +0000 (-0400) Subject: fixes for 4.14 X-Git-Tag: v5.3.2~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bb3c25acfca1b2aeb52f365f6acfcf836b96a1f0;p=thirdparty%2Fkernel%2Fstable-queue.git fixes for 4.14 Signed-off-by: Sasha Levin --- diff --git a/queue-4.14/series b/queue-4.14/series index 6f365d90149..87e6357f911 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -15,3 +15,4 @@ arm64-kpti-whitelist-cortex-a-cpus-that-don-t-implement-the-csv3-field.patch alsa-hda-add-laptop-imic-fixup-for-asus-m9v-laptop.patch alsa-hda-apply-amd-controller-workaround-for-raven-platform.patch objtool-clobber-user-cflags-variable.patch +tpm-fix-tpm-1.2-shutdown-sequence-to-prevent-future-.patch diff --git a/queue-4.14/tpm-fix-tpm-1.2-shutdown-sequence-to-prevent-future-.patch b/queue-4.14/tpm-fix-tpm-1.2-shutdown-sequence-to-prevent-future-.patch new file mode 100644 index 00000000000..ec3b9087574 --- /dev/null +++ b/queue-4.14/tpm-fix-tpm-1.2-shutdown-sequence-to-prevent-future-.patch @@ -0,0 +1,49 @@ +From e09e1a3e589e38ff8c402f7c97d30491b502dd2e Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 25 Sep 2019 13:15:32 +0300 +Subject: tpm: Fix TPM 1.2 Shutdown sequence to prevent future TPM operations + +From: Vadim Sukhomlinov + +commit db4d8cb9c9f2af71c4d087817160d866ed572cc9 upstream + +TPM 2.0 Shutdown involve sending TPM2_Shutdown to TPM chip and disabling +future TPM operations. TPM 1.2 behavior was different, future TPM +operations weren't disabled, causing rare issues. This patch ensures +that future TPM operations are disabled. + +Fixes: d1bd4a792d39 ("tpm: Issue a TPM2_Shutdown for TPM2 devices.") +Cc: stable@vger.kernel.org +Signed-off-by: Vadim Sukhomlinov +[dianders: resolved merge conflicts with mainline] +Signed-off-by: Douglas Anderson +Reviewed-by: Jarkko Sakkinen +Signed-off-by: Jarkko Sakkinen +Signed-off-by: Sasha Levin +--- + drivers/char/tpm/tpm-chip.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c +index 0eca20c5a80cf..ede8c1deca979 100644 +--- a/drivers/char/tpm/tpm-chip.c ++++ b/drivers/char/tpm/tpm-chip.c +@@ -158,12 +158,15 @@ static int tpm_class_shutdown(struct device *dev) + { + struct tpm_chip *chip = container_of(dev, struct tpm_chip, dev); + ++ down_write(&chip->ops_sem); + if (chip->flags & TPM_CHIP_FLAG_TPM2) { + down_write(&chip->ops_sem); + tpm2_shutdown(chip, TPM2_SU_CLEAR); + chip->ops = NULL; + up_write(&chip->ops_sem); + } ++ chip->ops = NULL; ++ up_write(&chip->ops_sem); + + return 0; + } +-- +2.20.1 +