From patchwork Mon Jun 5 17:52:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Steffen X-Patchwork-Id: 103427 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp2873892vqr; Mon, 5 Jun 2023 11:23:56 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6ywQHr4vHfmyS/3SUtYIMkIWRTMMs5cc9Yt0n0lCluWSu9QaMIAxuGlC5iUvUzE5TOiicS X-Received: by 2002:a17:90a:408b:b0:256:b8f0:d504 with SMTP id l11-20020a17090a408b00b00256b8f0d504mr3980334pjg.24.1685989436504; Mon, 05 Jun 2023 11:23:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685989436; cv=none; d=google.com; s=arc-20160816; b=TBv7ayVHDHSk/jtAaaNZdxBhFwSc1x35BGyZT5ATANTGj6PdNPD7R4bm6hNF6umETG wG/CFx+1nB7iwie+L0JHjJMgyxDPraEciN0i+aL/ooP9SsO1gIn23WWbq1UTvmn7+HZM tRM4NSWxFglgIqGQLU94h7pZwWmx+AEgyWoAfzpviA7XH9bFbud31F5wYOBpGH62iqUE rBBO0xD+JgZlEGn6i0/2fCrfRjjDsw1POF9J8iPdSlZ12OA0svq1G1sRyh/+7iscaFhy MyrcoUF+c11M3ekzeLRgi7RlqPL98OG6e+jh5q/Q3F/Qxwrk/zrPM3E402WUhzhY2TmC wIJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=dxmaVk91nxSLP3FeuychaXlT1lPUBGA5DJMnXDraWN4=; b=pQ4bQDKvYKrC23hegwGJZxs7q3Q9J8L2dObQRM+ajSVt91RsoItYz8U0LECXRT1zif /YujDGsPp2LEHqao2cFqcwHisjsjQ0ee4uOhhjSGnYihpAiNqaEdsDS+WlqjR8TnALnA RiEOc/ulfxHlHsdEBJS8iOQcFe/ANJ+UiNCDRTL5L4ZKVXsLzNz8aCFAEBNiqL5sohIE yByOlGykV+KAil5FLeG9mDqNBS0LqVXBuotA/PMErvO+qKyNqxJg23MQ+JzwRArHIAZs JXmSJeTBr8nN1AEzW0P3m8kFEL6NKbWO0g2f1TkXlkSf/0K5sRF6C9lSlpYcPe7Sv5eK FfXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infineon.com header.s=IFXMAIL header.b=n87eyRq7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=infineon.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 15-20020a17090a190f00b00252ad7ab4a5si7744826pjg.5.2023.06.05.11.23.44; Mon, 05 Jun 2023 11:23:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@infineon.com header.s=IFXMAIL header.b=n87eyRq7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=infineon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235383AbjFERxb (ORCPT + 99 others); Mon, 5 Jun 2023 13:53:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57504 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234584AbjFERx2 (ORCPT ); Mon, 5 Jun 2023 13:53:28 -0400 Received: from smtp2.infineon.com (smtp2.infineon.com [IPv6:2a00:18f0:1e00:4::4]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 946DAD3; Mon, 5 Jun 2023 10:53:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=infineon.com; i=@infineon.com; q=dns/txt; s=IFXMAIL; t=1685987607; x=1717523607; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=qnXdKp0XxJiBddmgvvjVvqWfVgIMwaT9ivNZNQ/2ryI=; b=n87eyRq7cJC9duI2iiK84uzQjtaX8h49oKarsKiOufqx5C+EfbHQTugS bAALTSrXQm+5qt1mpaWzwxIYV9ff1IUpFgRei9ssYp1YQsLh+BrlnVyko QyNwLbVPG4Car78TVtXHIq5nFNhakS4e/gVndFNXbkBtLYwM9FchZuaav o=; X-IronPort-AV: E=McAfee;i="6600,9927,10732"; a="40772631" X-IronPort-AV: E=Sophos;i="6.00,218,1681164000"; d="scan'208";a="40772631" Received: from unknown (HELO MUCSE812.infineon.com) ([172.23.29.38]) by smtp2.infineon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jun 2023 19:53:25 +0200 Received: from KLUSE818.infineon.com (172.28.156.171) by MUCSE812.infineon.com (172.23.29.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Mon, 5 Jun 2023 19:53:24 +0200 Received: from ISCNPC0VBFBX.infineon.com (10.161.6.196) by KLUSE818.infineon.com (172.28.156.171) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Mon, 5 Jun 2023 19:53:23 +0200 From: Alexander Steffen To: , , CC: Alexander Steffen Subject: [PATCH 2/4] tpm_tis: Move CRC check to generic send routine Date: Mon, 5 Jun 2023 19:52:48 +0200 Message-ID: <20230605175250.2055-3-Alexander.Steffen@infineon.com> X-Mailer: git-send-email 2.28.0.windows.1 In-Reply-To: <20230605175250.2055-1-Alexander.Steffen@infineon.com> References: <20230605175250.2055-1-Alexander.Steffen@infineon.com> MIME-Version: 1.0 X-Originating-IP: [10.161.6.196] X-ClientProxiedBy: MUCSE817.infineon.com (172.23.29.43) To KLUSE818.infineon.com (172.28.156.171) X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI,SPF_HELO_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767888059372565658?= X-GMAIL-MSGID: =?utf-8?q?1767888059372565658?= The CRC functionality is initialized before tpm_tis_core, so it can be used on all code paths within the module. Therefore, move the CRC check to the generic send routine, that also contains all other checks for successful command transmission, so that all those checks are in one place. Also, this ensures that tpm_tis_ready is called when a CRC failure is detected, to clear the invalid data from the TPM, which did not happen previously. Change-Id: I334abe9accc45efa679e23d391705322886bd0e3 Signed-off-by: Alexander Steffen --- drivers/char/tpm/tpm_tis_core.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c index aaaa136044ae..5ddaf24518be 100644 --- a/drivers/char/tpm/tpm_tis_core.c +++ b/drivers/char/tpm/tpm_tis_core.c @@ -466,6 +466,12 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len) goto out_err; } + rc = tpm_tis_verify_crc(priv, len, buf); + if (rc < 0) { + dev_err(&chip->dev, "CRC mismatch for command.\n"); + goto out_err; + } + return 0; out_err: @@ -510,12 +516,6 @@ static int tpm_tis_send_main(struct tpm_chip *chip, const u8 *buf, size_t len) if (rc < 0) return rc; - rc = tpm_tis_verify_crc(priv, len, buf); - if (rc < 0) { - dev_err(&chip->dev, "CRC mismatch for command.\n"); - return rc; - } - /* go and do it */ rc = tpm_tis_write8(priv, TPM_STS(priv->locality), TPM_STS_GO); if (rc < 0)