Received: by 10.223.185.116 with SMTP id b49csp2072057wrg; Mon, 12 Feb 2018 03:56:33 -0800 (PST) X-Google-Smtp-Source: AH8x224THH6TIonJ0VZ+o3/o9smGiESGqE+B3KhUCEi0Z4cL/m+grcR+oggwzjBpofV7FFprd6pJ X-Received: by 2002:a17:902:2b84:: with SMTP id l4-v6mr2660597plb.338.1518436593378; Mon, 12 Feb 2018 03:56:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518436593; cv=none; d=google.com; s=arc-20160816; b=d7PRiyk2g2a6Awr1gELxoJyy5MB1K0lw/gva6sJ6L0iegzye647a622oHX0d4tnCdz kk/pmpIL3VLerFtsFWjsYCvcAXfd4g2Uzt9ZOSjAOC4Cr7kojhzpGmKQK+U30r8c0e7w Va2KQVCpptNlEgOR+usorx0XbSmNej1ahuxuKCT+k0Bx5W3FWLmVKQMW/DxsWZ8sqftg 1TVqc6puJXVBic67yxW7PbbNRTca3tIQbhXjB6vHuKnpo6Jb/X2GJ9E1HvgXhNHIKI2/ +Jx8ZuvLjNMThKuLOU56bZ6kDn7rg5lWpiY+n2kPZcHveeP7xVlIWwsCnduyoDN7UnH3 7wQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :from:references:cc:to:subject:arc-authentication-results; bh=RLnn3jhqehXdkXvr5aofnaEuAj9QjkMQDQuDJGJ1O9k=; b=YvqgftlPhykLhyxFfjftMG623pE6iL8feQV8HZp+YW4TwL8nqxFuOcisDQpBmLZyhP afY69nNcfy76BG56Bn3dvG7FkzI8hEgwB+x6bVXRFPr0Y5bAOffkXeglcsluT1KIaG67 wntdwIzpoZ/L58lbSu0rEKQAomh3Qq2I7LjI/ls+MN9UOCMODrOiEfan+jcsuvwQdS1m owkDVcCFh+o+KM4IDt+gC00+wfgJFUgseD9jw3PzUgMCiQBVsEw4mUM97OAolKNQUyQB Rsq/VhzRYc7+wxLYKxNvUMceTVk5bcECp6FOEbxZ/kp4kny3dt6jc5eMIYjxZVw7oVED iaSQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v26si453394pgn.30.2018.02.12.03.56.19; Mon, 12 Feb 2018 03:56:33 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933072AbeBLJCy (ORCPT + 99 others); Mon, 12 Feb 2018 04:02:54 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:54292 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932953AbeBLJCs (ORCPT ); Mon, 12 Feb 2018 04:02:48 -0500 Received: from pps.filterd (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w1C8xVMS022651 for ; Mon, 12 Feb 2018 04:02:48 -0500 Received: from e15.ny.us.ibm.com (e15.ny.us.ibm.com [129.33.205.205]) by mx0a-001b2d01.pphosted.com with ESMTP id 2g32cejp5u-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Mon, 12 Feb 2018 04:02:47 -0500 Received: from localhost by e15.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 12 Feb 2018 04:02:46 -0500 Received: from b01cxnp23034.gho.pok.ibm.com (9.57.198.29) by e15.ny.us.ibm.com (146.89.104.202) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 12 Feb 2018 04:02:43 -0500 Received: from b01ledav002.gho.pok.ibm.com (b01ledav002.gho.pok.ibm.com [9.57.199.107]) by b01cxnp23034.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w1C92g6u46530772; Mon, 12 Feb 2018 09:02:42 GMT Received: from b01ledav002.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BE8C6124044; Mon, 12 Feb 2018 03:59:27 -0500 (EST) Received: from [9.124.211.151] (unknown [9.124.211.151]) by b01ledav002.gho.pok.ibm.com (Postfix) with ESMTP id 42F1612403F; Mon, 12 Feb 2018 03:59:26 -0500 (EST) Subject: Re: [PATCH] tpm: migrate tpm2_do_selftest() to use struct tpm_buf To: Jarkko Sakkinen , linux-integrity@vger.kernel.org Cc: Peter Huewe , Jason Gunthorpe , open list References: <20180209131820.23718-1-jarkko.sakkinen@linux.intel.com> From: Nayna Jain Date: Mon, 12 Feb 2018 14:31:43 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20180209131820.23718-1-jarkko.sakkinen@linux.intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-TM-AS-GCONF: 00 x-cbid: 18021209-0036-0000-0000-000002BCD914 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00008520; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000251; SDB=6.00988560; UDB=6.00501883; IPR=6.00767914; BA=6.00005825; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00019503; XFM=3.00000015; UTC=2018-02-12 09:02:44 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18021209-0037-0000-0000-0000434EC944 Message-Id: X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2018-02-12_04:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=9 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1802120116 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/09/2018 06:48 PM, Jarkko Sakkinen wrote: > As part of an ongoing effort to encapsulate TPM commands to struct > tpm_buf instead of using clunky union of structs, migrated > tpm2_do_selft_test() to use struct tpm_buf. > > Signed-off-by: Jarkko Sakkinen > --- > I wish this would be included as part of patch set that fixes the timing > issue. > drivers/char/tpm/tpm2-cmd.c | 32 ++++++++++---------------------- > 1 file changed, 10 insertions(+), 22 deletions(-) > > diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c > index c17e75348a99..a91a2c6f03a7 100644 > --- a/drivers/char/tpm/tpm2-cmd.c > +++ b/drivers/char/tpm/tpm2-cmd.c > @@ -31,10 +31,6 @@ struct tpm2_startup_in { > __be16 startup_type; > } __packed; > > -struct tpm2_self_test_in { > - u8 full_test; > -} __packed; > - > struct tpm2_get_tpm_pt_in { > __be32 cap_id; > __be32 property_id; > @@ -60,7 +56,6 @@ struct tpm2_get_random_out { > > union tpm2_cmd_params { > struct tpm2_startup_in startup_in; > - struct tpm2_self_test_in selftest_in; > struct tpm2_get_tpm_pt_in get_tpm_pt_in; > struct tpm2_get_tpm_pt_out get_tpm_pt_out; > struct tpm2_get_random_in getrandom_in; > @@ -823,16 +818,6 @@ unsigned long tpm2_calc_ordinal_duration(struct tpm_chip *chip, u32 ordinal) > } > EXPORT_SYMBOL_GPL(tpm2_calc_ordinal_duration); > > -#define TPM2_SELF_TEST_IN_SIZE \ > - (sizeof(struct tpm_input_header) + \ > - sizeof(struct tpm2_self_test_in)) > - > -static const struct tpm_input_header tpm2_selftest_header = { > - .tag = cpu_to_be16(TPM2_ST_NO_SESSIONS), > - .length = cpu_to_be32(TPM2_SELF_TEST_IN_SIZE), > - .ordinal = cpu_to_be32(TPM2_CC_SELF_TEST) > -}; > - > /** > * tpm2_do_selftest() - ensure that all self tests have passed > * > @@ -851,18 +836,21 @@ static int tpm2_do_selftest(struct tpm_chip *chip) > int rc; > unsigned int delay_msec = 10; > long duration; > - struct tpm2_cmd cmd; > + struct tpm_buf buf; > > duration = jiffies_to_msecs( > tpm2_calc_ordinal_duration(chip, TPM2_CC_SELF_TEST)); > > - while (1) { > - cmd.header.in = tpm2_selftest_header; > - cmd.params.selftest_in.full_test = 0; > - > - rc = tpm_transmit_cmd(chip, NULL, &cmd, TPM2_SELF_TEST_IN_SIZE, > - 0, 0, "continue selftest"); > + for (;;) { > + rc = tpm_buf_init(&buf, TPM2_ST_NO_SESSIONS, TPM2_CC_SELF_TEST); > + if (rc) > + return rc; > > + /* Perform tests in the background. */ > + tpm_buf_append_u8(&buf, 0); > + rc = tpm_transmit_cmd(chip, NULL, buf.data, PAGE_SIZE, 0, 0, > + "continue selftest"); > + tpm_buf_destroy(&buf); > if (rc != TPM2_RC_TESTING || delay_msec >= duration) > break; > Tested-By: Nayna Jain Thanks & Regards,      - Nayna