From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BBFDAC3A5A2 for ; Tue, 3 Sep 2019 16:30:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 87497215EA for ; Tue, 3 Sep 2019 16:30:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1567528241; bh=q4Y2kzB82rNvxd7A/88puPWBLD394Qg63gorAKZR084=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=DbdL8kyxOz7aJPwylDkYIT4LxysBUWivoU2ZUJoqNaWdaqsBkQ2n4dfrSt0eiZqMZ V99DqsWsDoQhhdYbJ8trkH8gz30ILwE74jw7sqYBgeXBYBLJbWkAsQ1lwc3C7qq+R2 kBI8e3iJ2oYWvUTH8A2dHqeDPuc+wyhK9fHS7bOI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731098AbfICQak (ORCPT ); Tue, 3 Sep 2019 12:30:40 -0400 Received: from mail.kernel.org ([198.145.29.99]:51236 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731186AbfICQ2v (ORCPT ); Tue, 3 Sep 2019 12:28:51 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 75FEB23789; Tue, 3 Sep 2019 16:28:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1567528131; bh=q4Y2kzB82rNvxd7A/88puPWBLD394Qg63gorAKZR084=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=yO0+zYbuv2h4CO87zleZ8yOGSIFR5f69v9ATYY37yBFE9pnKKfao4P3YUMrKMuvlo Nnuk2xlbCSwMt4GdswPfC9tZqNFvwp6whhYpnO+OQoAA1Qj8Zy1//iINFH08KFBT+h ojp03Qigxr1hH5YY4vO2EVb04FG7eZV1Ira2qDes= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Vadim Sukhomlinov , Douglas Anderson , Jarkko Sakkinen , Sasha Levin , linux-integrity@vger.kernel.org Subject: [PATCH AUTOSEL 4.19 126/167] tpm: Fix TPM 1.2 Shutdown sequence to prevent future TPM operations Date: Tue, 3 Sep 2019 12:24:38 -0400 Message-Id: <20190903162519.7136-126-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190903162519.7136-1-sashal@kernel.org> References: <20190903162519.7136-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Vadim Sukhomlinov [ Upstream commit db4d8cb9c9f2af71c4d087817160d866ed572cc9 ] 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 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c index 46caadca916a0..0b01eb7b14e53 100644 --- a/drivers/char/tpm/tpm-chip.c +++ b/drivers/char/tpm/tpm-chip.c @@ -187,12 +187,13 @@ 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