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=-8.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,USER_AGENT_MUTT autolearn=ham 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 69064C43441 for ; Sun, 18 Nov 2018 07:37:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 375C120684 for ; Sun, 18 Nov 2018 07:37:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 375C120684 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-integrity-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726071AbeKRR5Y (ORCPT ); Sun, 18 Nov 2018 12:57:24 -0500 Received: from mga14.intel.com ([192.55.52.115]:1913 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725915AbeKRR5Y (ORCPT ); Sun, 18 Nov 2018 12:57:24 -0500 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Nov 2018 23:37:54 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,247,1539673200"; d="scan'208";a="280924804" Received: from kaczmarx-mobl.ger.corp.intel.com (HELO localhost) ([10.249.254.89]) by fmsmga005.fm.intel.com with ESMTP; 17 Nov 2018 23:37:47 -0800 Date: Sun, 18 Nov 2018 09:37:44 +0200 From: Jarkko Sakkinen To: Stefan Berger Cc: linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, James Bottomley , Tomas Winkler , Tadeusz Struk , Stefan Berger , Nayna Jain , Peter Huewe , Jason Gunthorpe , Arnd Bergmann , Greg Kroah-Hartman , open list Subject: Re: [PATCH v8 16/17] tpm: take TPM chip power gating out of tpm_transmit() Message-ID: <20181118073744.GE5897@linux.intel.com> References: <20181116123845.15705-1-jarkko.sakkinen@linux.intel.com> <20181116123845.15705-17-jarkko.sakkinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-integrity-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-integrity@vger.kernel.org On Fri, Nov 16, 2018 at 12:02:17PM -0500, Stefan Berger wrote: > On 11/16/18 7:38 AM, Jarkko Sakkinen wrote: > > Call tpm_chip_start() and tpm_chip_stop() in > > > > * tpm_try_get_ops() and tpm_put_ops() > > * tpm_chip_register() > > * tpm2_del_space() > > > > And remove these calls from tpm_transmit(). The core reason for this > > change is that in tpm_vtpm_proxy a locality change requires a virtual > > TPM command (a command made up just for that driver). > > > > The consequence of this is that this commit removes the remaining nested > > calls. > > > > Signed-off-by: Jarkko Sakkinen > > --- > > drivers/char/tpm/tpm-chip.c | 21 ++++++++------------- > > drivers/char/tpm/tpm-interface.c | 4 ---- > > drivers/char/tpm/tpm.h | 9 --------- > > drivers/char/tpm/tpm2-space.c | 5 ++++- > > drivers/char/tpm/tpm_vtpm_proxy.c | 3 +-- > > 5 files changed, 13 insertions(+), 29 deletions(-) > > > > diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c > > index 65f1561eba81..837d44fa0797 100644 > > --- a/drivers/char/tpm/tpm-chip.c > > +++ b/drivers/char/tpm/tpm-chip.c > > @@ -41,9 +41,6 @@ static int tpm_request_locality(struct tpm_chip *chip, unsigned int flags) > > { > > int rc; > > > > - if (flags & TPM_TRANSMIT_NESTED) > > - return 0; > > - > > if (!chip->ops->request_locality) > > return 0; > > > > @@ -59,9 +56,6 @@ static void tpm_relinquish_locality(struct tpm_chip *chip, unsigned int flags) > > { > > int rc; > > > > - if (flags & TPM_TRANSMIT_NESTED) > > - return; > > - > > if (!chip->ops->relinquish_locality) > > return; > > > > @@ -74,9 +68,6 @@ static void tpm_relinquish_locality(struct tpm_chip *chip, unsigned int flags) > > > > static int tpm_cmd_ready(struct tpm_chip *chip, unsigned int flags) > > { > > - if (flags & TPM_TRANSMIT_NESTED) > > - return 0; > > - > > if (!chip->ops->cmd_ready) > > return 0; > > > > @@ -85,9 +76,6 @@ static int tpm_cmd_ready(struct tpm_chip *chip, unsigned int flags) > > > > static int tpm_go_idle(struct tpm_chip *chip, unsigned int flags) > > { > > - if (flags & TPM_TRANSMIT_NESTED) > > - return 0; > > - > > if (!chip->ops->go_idle) > > return 0; > > > > @@ -169,7 +157,9 @@ int tpm_try_get_ops(struct tpm_chip *chip) > > goto out_lock; > > > > mutex_lock(&chip->tpm_mutex); > > - return 0; > > + rc = tpm_chip_start(chip, 0); > > + if (rc) > > + mutex_unlock(&chip->tpm_mutex); > > This cannot be right to fall through to up_read() etc. Ouch! It is not and I had a fixup for it that was not applied to the resulting patch set :-/ /Jarkko