From patchwork Wed Jun 8 23:00:15 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ed Swierk X-Patchwork-Id: 9165893 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 17B7B604DB for ; Wed, 8 Jun 2016 23:01:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 096EB281F9 for ; Wed, 8 Jun 2016 23:01:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F235128310; Wed, 8 Jun 2016 23:01:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A1ED9281F9 for ; Wed, 8 Jun 2016 23:01:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1424252AbcFHXBa (ORCPT ); Wed, 8 Jun 2016 19:01:30 -0400 Received: from mail-pa0-f47.google.com ([209.85.220.47]:34755 "EHLO mail-pa0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1422982AbcFHXAa (ORCPT ); Wed, 8 Jun 2016 19:00:30 -0400 Received: by mail-pa0-f47.google.com with SMTP id bz2so6525222pad.1 for ; Wed, 08 Jun 2016 16:00:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=skyportsystems.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=O4Tj0NWSO0mM9Wc38e0Qdulxf5bmpMgM+DvBuc00hZk=; b=nTgBdXf/BxBchTYUTtYTN7PjlZvc5xp/Yb+iGpJERk+QEZilNT/mIGlhmQMUnanuC7 NxHnD78Q1Kfp194yQjeWAwGtolMFsfs0A81IUvjIpVNs4/5BrDg1LqAh9PlyL/Xtt8Am 1xCd8SzPnSih5kR64MsmoXC9sxN6FdT/YhKKw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=O4Tj0NWSO0mM9Wc38e0Qdulxf5bmpMgM+DvBuc00hZk=; b=TeAeT06EH9kTzWoUAUJQTZb+BkuiBSuEy35RtY88hiQa1R/zkrgOMdl8eOOv36dFFY l5f1cDu7lkqnKPKa7NhA5hJoWgFeznL6+wgUH3h9h3JfE/8+qaNZJMfZbxoD0MtMSgzw 2BQPjbVj+8KWy1sG6HGDHxltn/D/gGusgx8X3GUXFVOdeAybbpXWnN+6eHFITq8b+Ysg aZoy8iGmb/lbjpH8uy4qRza1dhovx3CttzV04pj8kCC4J1PLHx2DDyWkSuosdXhs6oOG cN/rXap9YN7Vh+gyMPZLXoVD4NAuMKXNMEVkZl1cX+xV4a1sO/0l5WR7QYBCqIEJomum +tKg== X-Gm-Message-State: ALyK8tKOm66w/6caXAAspuns6ANalvQWkoVDFo09R64x14iKXOrp7z3jTDX36wqbXpsRpcwG X-Received: by 10.66.80.72 with SMTP id p8mr8441913pax.38.1465426829369; Wed, 08 Jun 2016 16:00:29 -0700 (PDT) Received: from eswierk-sc.localdomain (67-207-112-138.static.wiline.com. [67.207.112.138]) by smtp.gmail.com with ESMTPSA id x187sm4726352pfx.87.2016.06.08.16.00.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 08 Jun 2016 16:00:28 -0700 (PDT) From: Ed Swierk To: tpmdd-devel@lists.sourceforge.net Cc: eswierk@skyportsystems.com, stefanb@us.ibm.com, jarkko.sakkinen@linux.intel.com, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, jgunthorpe@obsidianresearch.com Subject: [PATCH v5 1/4] tpm_tis: Improve reporting of IO errors Date: Wed, 8 Jun 2016 16:00:15 -0700 Message-Id: <1465426818-89356-2-git-send-email-eswierk@skyportsystems.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1465426818-89356-1-git-send-email-eswierk@skyportsystems.com> References: <1465346740-60120-1-git-send-email-eswierk@skyportsystems.com> <1465426818-89356-1-git-send-email-eswierk@skyportsystems.com> Sender: owner-linux-security-module@vger.kernel.org Precedence: bulk List-ID: X-Virus-Scanned: ClamAV using ClamSMTP Mysterious TPM behavior can be difficult to track down through all the layers of software. Add error messages for conditions that should never happen. Also include the manufacturer ID along with other chip data printed during init. Signed-off-by: Ed Swierk Reviewed-by: Jarkko Sakkinen --- drivers/char/tpm/tpm_tis.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c index 65f7eec..088fa86 100644 --- a/drivers/char/tpm/tpm_tis.c +++ b/drivers/char/tpm/tpm_tis.c @@ -299,6 +299,8 @@ static int tpm_tis_recv(struct tpm_chip *chip, u8 *buf, size_t count) expected = be32_to_cpu(*(__be32 *) (buf + 2)); if (expected > count) { + dev_err(chip->pdev, "Response too long (wanted %zd, got %d)\n", + count, expected); size = -EIO; goto out; } @@ -366,6 +368,8 @@ static int tpm_tis_send_data(struct tpm_chip *chip, u8 *buf, size_t len) &chip->vendor.int_queue, false); status = tpm_tis_status(chip); if (!itpm && (status & TPM_STS_DATA_EXPECT) == 0) { + dev_err(chip->pdev, "Chip not accepting %zd bytes\n", + len - count); rc = -EIO; goto out_err; } @@ -378,6 +382,7 @@ static int tpm_tis_send_data(struct tpm_chip *chip, u8 *buf, size_t len) &chip->vendor.int_queue, false); status = tpm_tis_status(chip); if ((status & TPM_STS_DATA_EXPECT) != 0) { + dev_err(chip->pdev, "Chip not accepting last byte\n"); rc = -EIO; goto out_err; } @@ -689,8 +694,9 @@ static int tpm_tis_init(struct device *dev, struct tpm_info *tpm_info, vendor = ioread32(chip->vendor.iobase + TPM_DID_VID(0)); chip->vendor.manufacturer_id = vendor; - dev_info(dev, "%s TPM (device-id 0x%X, rev-id %d)\n", + dev_info(dev, "%s TPM (manufacturer-id 0x%X, device-id 0x%X, rev-id %d)\n", (chip->flags & TPM_CHIP_FLAG_TPM2) ? "2.0" : "1.2", + chip->vendor.manufacturer_id, vendor >> 16, ioread8(chip->vendor.iobase + TPM_RID(0))); if (!itpm) {