From patchwork Sun Nov 20 13:31:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lino Sanfilippo X-Patchwork-Id: 13050033 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37B1FC433FE for ; Sun, 20 Nov 2022 13:32:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229726AbiKTNck (ORCPT ); Sun, 20 Nov 2022 08:32:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46860 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229650AbiKTNc3 (ORCPT ); Sun, 20 Nov 2022 08:32:29 -0500 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DDCE7202; Sun, 20 Nov 2022 05:32:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1668951127; bh=F2hzzeSzk8y4Ogbig7FSAtP0DXv6VqmVYAg81reycu8=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=YoAOpnl2cGULoCrUpsM4P43BSWEiq0m2yNqAU8UnpBomByPL1uyDiPhOhE9kInDVI 3zmUAT4KOY5xcGNCzmwoCqA4LPaR0ej/yIQGoha8vbju9CSKQ/OVuglRsfTgm1x93B uGtVHA/u7PMwJakPWPYJOFQDwTmOMLwI+zpBv6sjfQWbf8bbFA95v4Mvyhz8VM1jza ccPWefZOOGaeTCAuo+YVooRiIJcjgbbW2785wlQx2Ck7fIzFjmKZ67fKaoJllLj1nd mG0uFMPTY93mbro0raOmi3zS0HA6q3fEcEjPJeXaiSQ7i4OlmbeNQ2fhoWAfhkO2Br 9+C6/34Kci7FA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from Venus.speedport.ip ([84.162.7.17]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MtwUw-1pDRMp1Z1A-00uIVv; Sun, 20 Nov 2022 14:32:07 +0100 From: Lino Sanfilippo To: peterhuewe@gmx.de, jarkko@kernel.org, jgg@ziepe.ca Cc: stefanb@linux.vnet.ibm.com, linux@mniewoehner.de, linux-integrity@vger.kernel.org, linux-kernel@vger.kernel.org, jandryuk@gmail.com, pmenzel@molgen.mpg.de, l.sanfilippo@kunbus.com, LinoSanfilippo@gmx.de, lukas@wunner.de, p.rosenberger@kunbus.com Subject: [PATCH v10 08/14] tpm, tpm_tis: do not check for the active locality in interrupt handler Date: Sun, 20 Nov 2022 14:31:28 +0100 Message-Id: <20221120133134.28926-9-LinoSanfilippo@gmx.de> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20221120133134.28926-1-LinoSanfilippo@gmx.de> References: <20221120133134.28926-1-LinoSanfilippo@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:qDOS5QDjXdbwOofh6vZTHErbO+5mCvO4iiSZ5/xFYyCEu6lwU1K 93ZMirCD+aeoLEIT1HWNIrru1jnO8tLVJcMsRi+CEWuexoAttgGDD3fode2VQA+QedOtaM5 N/xzjYqwe7Dxl6JdINF1/tQiH0fRkAdxFLbLPwRrD574ipm3pf6HiX5DRU0/ULJrF0+g+HT y1T7eZ/lZ38apE9GlIxHg== UI-OutboundReport: notjunk:1;M01:P0:z5JKXYd0BeY=;vUttoE07kPsMS0FVFrXeO2dmo2e zkJx0Rw4PUQy5qqtuv3wfTECOF7u1eTEYyvoAfyBKVUOpr2RyDF3AwFXYBfdWt3gmd0Bdxzgf TzKKI17UN+SUdV+/lzlyoRkymCbp+krZ6fNLHB6fAbJuimQd3K7FFnC2WmJN4yKaVQY/MQMLE qw3l/96CLSPGEhKf3k1Ca2Xrksu4rUAEckCvaNS/AzHdkhTmqP1Ld1+3rwM5MFfK/FWBjcc2c ISeOu367IgxXqgBA/QYu86dQFFyOVPCB4vWkpfpq2NbM/+Hq6pUNJ+PfhTBsNnkyu/uygggIL W+ZKkcdgWBrvk3cWyNNOwRmgtGka1kGilngZam1DFRcq71ko3t85njxjiXPov1SvdRz5YjPL9 yk79vTjk9oB45sNED8RxxaG8wBl2wVDPjbnN/VkvTsLxAbPd7qqwSed6ntuedUMTO84tW0Kdj m0bSm3pF3d+GKf5zxaCmSol85+2WsLEXERK8E/jv1N/RqBcPBhFct/8zg8gki5MWw+5NYrXpM UPxuNXoBUgGbtuHV2jIkGhTQZvDGcsxtmPWisqjVnUUs9kTBa8AAP1oVsxnuL4PbSTiHU+xES cEjOi/jI98cwqW0iZ0FhVE3kB/rqW6gxSYpmln3uVRRg+9K3JGf6+W9C+C6P28s5CcRrmtJJ3 D0QPPawxEKF8bVJyLhAfz+kvxVn7GIELCVqOg5DmmGxv86DHUhGTLIcBXEVyTetV6mXy2v+M/ Q5DvNixN7AtaJgNDZoDwnK/QLErjEMRVdHUjCqBMYllmBanRcy7Lz6QkUJD+OwRcaEPYqZ1LJ 5Eso5GI4zd/+3ILsVToGds//+aQIQAIVCRNkHulVxKBAqQRGV7yY8qntedEJCj3wsRFFuJNKY 4/Fk6QP1Q16SO5iPAr1+5fhGuNOQMK9TIdVci2xhaVSTnrqu1NBK6gDtEH6l30diRHZz2mzRm 9TB1pQ== Precedence: bulk List-ID: X-Mailing-List: linux-integrity@vger.kernel.org From: Lino Sanfilippo After driver initialization tpm_tis_data->locality may only be modified in case of a LOCALITY CHANGE interrupt. In this case the interrupt handler iterates over all localities only to assign the active one to tpm_tis_data->locality. However this information is never used any more, so the assignment is not needed. Furthermore without the assignment tpm_tis_data->locality cannot change any more at driver runtime, and thus no protection against concurrent modification is required when the variable is read at other places. So remove this iteration entirely. Signed-off-by: Lino Sanfilippo Acked-by: Jarkko Sakkinen --- drivers/char/tpm/tpm_tis_core.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c index 5ff4ca5fb936..d0e5acd6b769 100644 --- a/drivers/char/tpm/tpm_tis_core.c +++ b/drivers/char/tpm/tpm_tis_core.c @@ -728,7 +728,7 @@ static irqreturn_t tis_int_handler(int dummy, void *dev_id) struct tpm_chip *chip = dev_id; struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev); u32 interrupt; - int i, rc; + int rc; rc = tpm_tis_read32(priv, TPM_INT_STATUS(priv->locality), &interrupt); if (rc < 0) @@ -740,10 +740,7 @@ static irqreturn_t tis_int_handler(int dummy, void *dev_id) set_bit(TPM_TIS_IRQ_TESTED, &priv->flags); if (interrupt & TPM_INTF_DATA_AVAIL_INT) wake_up_interruptible(&priv->read_queue); - if (interrupt & TPM_INTF_LOCALITY_CHANGE_INT) - for (i = 0; i < 5; i++) - if (check_locality(chip, i)) - break; + if (interrupt & (TPM_INTF_LOCALITY_CHANGE_INT | TPM_INTF_STS_VALID_INT | TPM_INTF_CMD_READY_INT))