Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp359138imm; Thu, 21 Jun 2018 20:28:59 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKfjbN/GgEEzmrKk3jONoCSO5Utn7rZ5wS6PsohjWXd2BBc/bmr4/THJpgOIfImGSEljrRi X-Received: by 2002:a17:902:9307:: with SMTP id bc7-v6mr31095494plb.292.1529638139650; Thu, 21 Jun 2018 20:28:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529638139; cv=none; d=google.com; s=arc-20160816; b=hgrstNb3CohsBSS6RmTKZT4ym2qjSbmEyVv5HOMOTWRbUREpVsnUj0i09U80GT0KWK 5v3dMvDjO/5hohjl69xy1UVy1+kD9GmXPi3/tmiat/YJGrb7XN5THkQgLGE9/CbRjpwN zqCsiTHQ6SrWdlkjXmyERkRp1VGcDIYNs2+b8vgEB/Y9kfJVch18qMh1wWgJquaWfAp7 qWr7Qrmf6reVarTJmHVweyimsgA0E0C3pwMchWGNlXccWs+855zy6GT6s6GulEQqVoFC Lqfzn0/b6fCwVcP9yoCpMurETx7ZxjAQeLNapavGA0bBEGkroluQDcQ/zjLBf1HoECpZ XicA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature :arc-authentication-results; bh=gFufw+TMpbj41ycv0j7cumx0hYzT0alev2jBL1/NrMM=; b=N95iYShJCKStFqMdrRo4xAobFBvrBKfoZNpRCyvesIikue/RgMBUB7Bh/asWJpe9La 0DbiGv4R6hXe9yUI6GnIpFksKJ8s+v0gRE1VXG3v/qpaOoVoX4Zy0zohPBemMm2/iR95 N5+/UJwxG4SOm1ajYCLhPjwgcaKi1XigZKgOLQOquaMG9JjSKMog/m30VW4D608BsOkh 1CRMSUqhz/cNakzgeCgdt2vmfZMf6kdcMAmVn7AfMg25deOEHCgq1NyM7aL+wNhB+RCU et/qluVe6MxrDCKK5I/DkiOmcZhFgtycLNEq+NSDcIykpNlSwAGMpsQA1Rp5ggVKYUyo wfcg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ziepe.ca header.s=google header.b=Uv1jc3lb; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k72-v6si6482313pfj.141.2018.06.21.20.28.44; Thu, 21 Jun 2018 20:28:59 -0700 (PDT) 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; dkim=pass header.i=@ziepe.ca header.s=google header.b=Uv1jc3lb; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934406AbeFVDZk (ORCPT + 99 others); Thu, 21 Jun 2018 23:25:40 -0400 Received: from mail-pg0-f68.google.com ([74.125.83.68]:36754 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934292AbeFVDZj (ORCPT ); Thu, 21 Jun 2018 23:25:39 -0400 Received: by mail-pg0-f68.google.com with SMTP id m5-v6so2329167pgd.3 for ; Thu, 21 Jun 2018 20:25:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=gFufw+TMpbj41ycv0j7cumx0hYzT0alev2jBL1/NrMM=; b=Uv1jc3lbUkFZ6kWBogTXkCAMiNQYRjFaUZQU9yaJHg67ve3SsZjCSQb/WFEFDy8CYr 7Pk46qen334y6/nnSr1UxiF9H/vTm9L9DSVlhptwzFXOvMhK9UbSTUGHypWFgvIbH788 cX+qu9kxkvUtpGXfCAJzK50LcL7ljP9wP0p0D9LvzdkqPdS0ye5//yFN/idv+HK2tGZK EAO1NDTszMIRqnu0pqGOnjYqFp3uQVhC7MTmYHg2NcGZf/f0iKpgajNatoECtlJ8LMu4 QDJX7xNrGxnEOIKFD3zxQ35lGwMUo1SwHa3rLc/k2qpIORO+TsyC0eDBySME1o1Kvojc i3Nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=gFufw+TMpbj41ycv0j7cumx0hYzT0alev2jBL1/NrMM=; b=N5nHT2qJrM/3kgpTmxkx2H6U+hyUe9j4svJBNUuWlhuf6Gw4X23PHxdW2VJMpBRzyc Ti5KTt5aRBdAy6oFh/9jSJxSaPrEJrWiFUhAOCNCCNpfUiu/h2mT2+DHrDXUp12jz5Sp djhViB4Mq6tKO6fouux/n6Bl7jaIQDnmX9bzF6sq1u94PnH6AdkEGhpX5cn4wDckUpTj 1rFuA/LW3Zxup7qc+1PyndQEkcIXXTOAZyDFUV5VaI606S3cwxP0iSTkNXx6K6dkc/JM 6er18/e05SZICMsl8Ou7QnXUZU9K3sybrKPCRolq1enYz/kw2KTQeqO2DrIigQwjKYCm cSiA== X-Gm-Message-State: APt69E2qZba5Lsnwa8K1eAIAibp2cZUe+5uhLN5KrLAmG/WxyFFcAMvt 2porLAeNVR2pjYStdId/K/oBIA== X-Received: by 2002:a65:5b4c:: with SMTP id y12-v6mr25165938pgr.442.1529637938449; Thu, 21 Jun 2018 20:25:38 -0700 (PDT) Received: from ziepe.ca (S010614cc2056d97f.ed.shawcable.net. [174.3.196.123]) by smtp.gmail.com with ESMTPSA id 74-v6sm11587025pfj.127.2018.06.21.20.25.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Jun 2018 20:25:37 -0700 (PDT) Received: from jgg by mlx.ziepe.ca with local (Exim 4.86_2) (envelope-from ) id 1fWChc-0000Jw-HZ; Thu, 21 Jun 2018 21:25:36 -0600 Date: Thu, 21 Jun 2018 21:25:36 -0600 From: Jason Gunthorpe To: Stefan Berger Cc: Mimi Zohar , linux-integrity@vger.kernel.org, jarkko.sakkinen@linux.intel.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 3/4] ima: Use tpm_chip_find() and access TPM functions using it Message-ID: <20180622032536.GB19151@ziepe.ca> References: <20180620204236.1572523-1-stefanb@linux.vnet.ibm.com> <20180620204236.1572523-4-stefanb@linux.vnet.ibm.com> <1529614425.23843.20.camel@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jun 21, 2018 at 04:59:55PM -0400, Stefan Berger wrote: > On 06/21/2018 04:53 PM, Mimi Zohar wrote: > >On Wed, 2018-06-20 at 16:42 -0400, Stefan Berger wrote: > >>Rather than accessing the TPM functions using a NULL pointer, which > >>causes a lookup for a suitable chip every time, get a hold of a tpm_chip > >>and access the TPM functions using this chip. We call the tpm_chip > >>ima_tpm_chip and protect it, once initialization is done, using a > >>rw_semaphore called ima_tpm_chip_lock. > >> > >>Use ima_shutdown to release the tpm_chip. > >> > >>Signed-off-by: Stefan Berger > >> security/integrity/ima/ima.h | 3 +++ > >> security/integrity/ima/ima_crypto.c | 12 ++++++++++-- > >> security/integrity/ima/ima_init.c | 19 ++++++++++++------- > >> security/integrity/ima/ima_queue.c | 7 +++++-- > >> 4 files changed, 30 insertions(+), 11 deletions(-) > >> > >>diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h > >>index 354bb5716ce3..53a88d578ca5 100644 > >>+++ b/security/integrity/ima/ima.h > >>@@ -24,6 +24,7 @@ > >> #include > >> #include > >> #include > >>+#include > >> #include > >> > >> #include "../integrity.h" > >>@@ -56,6 +57,8 @@ extern int ima_policy_flag; > >> extern int ima_used_chip; > >> extern int ima_hash_algo; > >> extern int ima_appraise; > >>+extern struct rw_semaphore ima_tpm_chip_lock; > >>+extern struct tpm_chip *ima_tpm_chip; > > > >ima_add_templatE_entry() synchronizes appending a measurement to the > >measurement list and extending the TPM by taking a lock.  Do we really > >need to introduce another lock? > > This lock protects the ima_tpm_chip from going from != NULL to NULL in the > ima_shutdown function. Basically, a global pointer accessed by concurrent > threads should be protected if its value can change. However, in this case > ima_shutdown would be called so late that there shouldn't be concurrency > anymore. Though, I found it better to protect it. Maybe someone else has an > opinion? Why have a shutdown block? There is no harm in holding a kref if the machine is shutting down. Jason