Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp298073imm; Fri, 10 Aug 2018 11:25:51 -0700 (PDT) X-Google-Smtp-Source: AA+uWPzD17txqSmCBpMv0cyJj+bokErTaRHmSgxKktCLnlNAtoocQ0LZm+O1aoQge42cp1A0TxZ0 X-Received: by 2002:a63:710d:: with SMTP id m13-v6mr7456757pgc.66.1533925551212; Fri, 10 Aug 2018 11:25:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533925551; cv=none; d=google.com; s=arc-20160816; b=03Lqg9MCsA7Jvrrgoiws0scFWO4W5tcjqII8IFvcQVZdCKtXk8HNhVh7pbgf9AIQ97 M8aCkKX9rH9zmvTRGg8exrf1TMIZ0LglVNTMFzxHk/IeQd2AiML9GoHpBPQW5NsT0A99 TIi6aoSD7AGA0189ZqNCiXkWSk2lTIckjSki3GRwDj4Sn490HaShMcDiPL+wIQV5SD4g u0aTgv97zoi5b7xxGHsWXH6ha05IJi/5bQlCntnNEP8zTNQ/HSmdpk1bJKOAQ0P+ru9Q Z/AiZlYjQrTi0OMcghYIxD1WCviq8m06qqk3Su73KhK7TjkqL3zA8P/Dy3T7mrLj5rLX 108g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:from:references:cc:to:subject :arc-authentication-results; bh=V9ICiA15K75oDHv7D/PWvSKUAifhEc8Ik2+ZJZDCPDA=; b=clUztA8tM/rTK1RQRSUCRxs5hrPKtQgTgzGAwIpvcrGu4px5vQOJn1NxV9E0wkKPkO oEK4h4QUqA5ifkJE7LUNPs4BjOjaGgxOb6ehmA0B9hUHyr+VaiQ1QaGGImh4HLof2T2t q2q6otE7/JKuPdmbNbKTQZLQR6blXlrpkT2o0r8+LI833YyEbquZEz3wwLCoyHI5u/li p4ZjTIMyzuCfLarOpg2F35o6i0eOlUqUerKnd5tiI93ck52uWoHZGb3kvEVg05c2X3iv 7NQimfNtxMLj34LUsHfVbkWMaWwBNiP4T9+8MSys6+h8DbxRCrj71wnW4KvgtZwNEEda hglQ== 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=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p17-v6si11161791pfd.76.2018.08.10.11.25.36; Fri, 10 Aug 2018 11:25:51 -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; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728742AbeHJUw2 (ORCPT + 99 others); Fri, 10 Aug 2018 16:52:28 -0400 Received: from mga02.intel.com ([134.134.136.20]:38783 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728305AbeHJUwZ (ORCPT ); Fri, 10 Aug 2018 16:52:25 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Aug 2018 11:21:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,220,1531810800"; d="scan'208";a="64216641" Received: from bchattar-mobl.amr.corp.intel.com (HELO tstruk-mobl1.jf.intel.com) ([10.252.130.118]) by orsmga008.jf.intel.com with ESMTP; 10 Aug 2018 11:21:14 -0700 Subject: Re: [PATCH v4 2/2] tpm: add support for nonblocking operation To: Jarkko Sakkinen Cc: flihp@twobit.us, jgg@ziepe.ca, linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org References: <153367365951.18015.11320230309813817454.stgit@tstruk-mobl1.jf.intel.com> <153367366969.18015.14742040525393494830.stgit@tstruk-mobl1.jf.intel.com> <20180810174320.GV4692@linux.intel.com> From: Tadeusz Struk Openpgp: preference=signencrypt Autocrypt: addr=tadeusz.struk@intel.com; prefer-encrypt=mutual; keydata= xsDiBEiLICMRBADteQacQxypsuFvAw6IwYzbD8pgQi+kLYBcqfGgVAUN/cO+sLl6u1lVdaDB fhAArdbV9lpoqcWnmhQFTb4A+W569EpydBr6nuatWkEB+fmmx8YoUtuZfXt7v+1l1rc09kaW LY+TkwQkvFCeuvdasgmBLnmRWymEGWi1E12hUgTw/wCgtK24geC7XkiuANMv0gpr+raOgQMD /2yJZ0SeXQApWyTRaeIYN8GgYHZTWuBp/ofN+viEkhrDxahcaGPP5B/Nv6VS1+M0e5m8OzHj qPUbgfyOeJcslC5aoZdqqqzVWVLaA/+Jy+O+6T3k3R/IryVVATldBlwnGFDhET0mKQsd15zt cIdQBBbfSFR5VlugZuWV5q442IpPA/4g7nen9FFPxh45Te8D54hAsOCywjm6xUE0UJGYHeJ/ MXCPtuXfVCbYcOxZVH7kUS2Vtk5d3bF40IE2WnVq1ZScNANF4ZjikxYhYGfNWX3HXak1gSoj UrY87rMSjPIAry4L0BoIx2qgL/k4iV/3QcXL4t5wosU0iw++suf1zGGcKM0gVGFkZXVzeiBT dHJ1ayA8dHN0cnVrQGdtYWlsLmNvbT7CYwQTEQIAIwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4B AheABQJQTjJTAhkBAAoJEDFswfskq9xyqvcAoI2nsaUCX8ZGbu+Jhq+++qlBFJ2rAJ983RoO R2ofHhn3g3Qi4K34tw0l087BTQRauzUlARAAqkWRL/InEPnoGMg/gw/CRaDBaIBgMsvIcghI 7xevIzpleXt6jKHghSBooH+zaT7qi4u2gkgPn4odsER3Rm94XgrZJgoqls6EpKMWpJNGP4HT eYgykhfsZOLX8ijUbjTM/Sm/dZVo6aYoBL2+ciJwyl+Zt3Mp6un3/GWu6cA9005V50pRqO7j PTlVCHi2bedcEEf5DDsYJv/3Oz8/4LpSf6BL6BltjeZVa2y03dTMmD031JTH+OuyJm1yh72Z HWxhlYNXOv6uFJJVr+paQjrAsBVIYKhK24bD+uGJxLm8AN9i7/Si+2YeSsXvKUhk9mIoFBnU VFo63cziRTcpRu/kXgDAbujwN88qytEcvhEZHS6B9vdws+lhTpolEjkLCkz0Y59z4Fs9srKy QkRN+wtdiLgrwyDW3ryAKxcDmOumGWebDxpaOI/pBhrlS93HmDlvj7JmgTUU4a/NhwI3dXh5 pn8FZzZyVXe3Kc3bu5T3UAC7uztinsAvCJQS6jGZWrXmXkqYkaLXQOw61eInWjr01zE/zDbE mdJPM0+va/gtZx9TtGxr4PpjbqswqCiubLDZXZHh5uqArPv/i+E8aXIsNSTN6Rrqs1j9YgDN ALksibv6+tXH3sOlCUgjuZgJH3+s/mnaAtiV2rZ/WlH15d6nd0uiDSZrKhlR+g4NHMh1ztEA EQEAAcJPBBgRAgAPBQJauzUlAhsMBQkJZgGAAAoJEDFswfskq9xyfv8AoI8aPrJCoM0h5WOP kKxMmPEPHzUNAJ9jBBYXhX1CWg+IhI7i/fLlI0vwCA== Message-ID: Date: Fri, 10 Aug 2018 11:21:14 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20180810174320.GV4692@linux.intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/10/2018 10:43 AM, Jarkko Sakkinen wrote: >> +static struct workqueue_struct *tpm_dev_wq; > A naming contradiction with tpm_common_read() and tpm_common_write(). To > sort that up I would suggest adding a commit to the patch set that > renames these functions as tpm_dev_common_read() and > tpm_dev_common_write() and use the name tpm_common_dev_wq here. > Currently we have: tpm_open(), tpm_write(), tpm_release() in tpm-dev.c tpmrm_open(), tpmrm_read(), tpmrm_write(), tpmrm_release() in tpmrm-dev.c tpm_common_open(), tpm_common_read(), tpm_common_write(), tpm_common_release() in tpm-dev-common.c I think that's pretty consistent. Do you want me to rename all of them to tpm_dev_*()? I don't see any value in doing this. What about if I just rename: tpm_dev_wq_lock to tpm_common_wq_lock, and tpm_dev_wq to tpm_common_wq? >> +static DEFINE_MUTEX(tpm_dev_wq_lock); > This is an unacceptable way to do it, Rather add: > > int __init tpm_dev_common_init(void) > { > tpm_dev_common_wq = alloc_workqueue("tpm_dev_wq", WQ_MEM_RECLAIM, 0); > if (!tpm_dev_common_wq) > return -ENOMEM; > > return 0; > } > > and call this in the driver initialization. > That was the way it was implemented in v1 https://patchwork.kernel.org/patch/10442125/ See: static int __init tpm_dev_common_init(void) and the feedback I got from Jason was: "I wonder if it is worth creating this when the first file is opened.. Lots of systems have TPMs but few use the userspace.." so I changed this to allocate the WQ on first open. I think it makes sense, but I leave it to you to decide. Tadeusz, -- Tadeusz