From patchwork Wed Jul 13 16:19:32 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ed Swierk X-Patchwork-Id: 9227957 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 4B4F26075D for ; Wed, 13 Jul 2016 16:21:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3DB8127FA4 for ; Wed, 13 Jul 2016 16:21:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3275927FAD; Wed, 13 Jul 2016 16:21:35 +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=ham 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 8311027F9E for ; Wed, 13 Jul 2016 16:21:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751162AbcGMQTx (ORCPT ); Wed, 13 Jul 2016 12:19:53 -0400 Received: from mail-pa0-f42.google.com ([209.85.220.42]:33002 "EHLO mail-pa0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752181AbcGMQTw (ORCPT ); Wed, 13 Jul 2016 12:19:52 -0400 Received: by mail-pa0-f42.google.com with SMTP id ks6so19225023pab.0 for ; Wed, 13 Jul 2016 09:19:47 -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=p5NDwk8FjDUKJDJ+xcYPMe3KwNGxBttz5ntktom47Ug=; b=j9tTnPrJusTY6vGAPc/uRy8mVvV6KS/1akZxnXhmL8XN16mUP1xqkq0d3TZU+M/pVi DWpxhQnO1NAIuvu3p1MDFevfDo+NpDu7BnwIeUdeiiG+uouY5gBisu2SyJvtiZ1khKpx Twk+riQb7vZtv6E7f6QeCi1W+k4YXIers1pV0= 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=p5NDwk8FjDUKJDJ+xcYPMe3KwNGxBttz5ntktom47Ug=; b=CQ2hpqdTO6B8mHk0Lalo832MxMdkWnVsVgpJ4XFiWAnUhjtxlt9e3VLL7zo8WXvJvS K2SISJAkGS8PQPXcqHlelbXdVRuSFXsnG9B+mZQk/+C3LRAHRZLviH/mIwIQqMWB/Rj6 VhBe/QlOec/cvWz/OG0Z46LP0PT1lRBGANf44Dy1Z9WE5grss/UdGoaqp6FJ4ZfPHlOx lGxqmUlxriCQUv0yqDu3M03gVIez5S+aOOngZQFKXgc5bRQz/zUS7SQ3nyUENnCGk8uP CVizbVv3CrrNVp2Bk9dfNX26TQ40T919PR+rWMqI936vqOLBhvu6YiRCz517jaKOm/yh CSrA== X-Gm-Message-State: ALyK8tLh8/YtMq2YWwL3dBcRUl9gRbmBtHZDvmxIwf+xpcblAz5RdStyySJhp/wBYfhd9Oyi X-Received: by 10.66.104.34 with SMTP id gb2mr15124992pab.12.1468426786815; Wed, 13 Jul 2016 09:19:46 -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 15sm6015473pfz.36.2016.07.13.09.19.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 13 Jul 2016 09:19:46 -0700 (PDT) From: Ed Swierk To: tpmdd-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org Cc: jarkko.sakkinen@linux.intel.com, jgunthorpe@obsidianresearch.com, stefanb@us.ibm.com, eswierk@skyportsystems.com Subject: [PATCH v9 1/5] tpm_tis: Improve reporting of IO errors Date: Wed, 13 Jul 2016 09:19:32 -0700 Message-Id: <1468426776-42762-2-git-send-email-eswierk@skyportsystems.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1468426776-42762-1-git-send-email-eswierk@skyportsystems.com> References: <1466557831-113440-1-git-send-email-eswierk@skyportsystems.com> <1468426776-42762-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_core.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c index 8110b52..e62fdeb 100644 --- a/drivers/char/tpm/tpm_tis_core.c +++ b/drivers/char/tpm/tpm_tis_core.c @@ -217,6 +217,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->dev, "Response too long (wanted %zd, got %d)\n", + count, expected); size = -EIO; goto out; } @@ -283,6 +285,8 @@ static int tpm_tis_send_data(struct tpm_chip *chip, u8 *buf, size_t len) &priv->int_queue, false); status = tpm_tis_status(chip); if (!itpm && (status & TPM_STS_DATA_EXPECT) == 0) { + dev_err(&chip->dev, "Chip not accepting %zd bytes\n", + len - count); rc = -EIO; goto out_err; } @@ -297,6 +301,7 @@ static int tpm_tis_send_data(struct tpm_chip *chip, u8 *buf, size_t len) &priv->int_queue, false); status = tpm_tis_status(chip); if (!itpm && (status & TPM_STS_DATA_EXPECT) != 0) { + dev_err(&chip->dev, "Chip not accepting last byte\n"); rc = -EIO; goto out_err; } @@ -707,8 +712,9 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq, if (rc < 0) goto out_err; - 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", + priv->manufacturer_id, vendor >> 16, rid); if (!(priv->flags & TPM_TIS_ITPM_POSSIBLE)) {