From patchwork Fri Feb 15 13:22:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liam Merwick X-Patchwork-Id: 10814955 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AF6581390 for ; Fri, 15 Feb 2019 13:23:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 924AC285E8 for ; Fri, 15 Feb 2019 13:23:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 85CE92863E; Fri, 15 Feb 2019 13:23:57 +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=-2.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1C4CD285E8 for ; Fri, 15 Feb 2019 13:23:56 +0000 (UTC) Received: from localhost ([127.0.0.1]:39807 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gudT9-0000Rh-Hq for patchwork-qemu-devel@patchwork.kernel.org; Fri, 15 Feb 2019 08:23:55 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44138) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gudSY-00007c-HM for qemu-devel@nongnu.org; Fri, 15 Feb 2019 08:23:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gudSW-0001gL-GD for qemu-devel@nongnu.org; Fri, 15 Feb 2019 08:23:18 -0500 Received: from aserp2130.oracle.com ([141.146.126.79]:42822) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gudSU-0001NQ-Pl for qemu-devel@nongnu.org; Fri, 15 Feb 2019 08:23:16 -0500 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x1FDIrEP081456; Fri, 15 Feb 2019 13:23:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id; s=corp-2018-07-02; bh=xh1d7aR2csnY40wgoLdRlsSICwSfacYY8Z1fH4Nj3mY=; b=zd53Q1i2COUI7nFeAWKHBYHHEc4vQ1u7m8NFWa/t8N2mUd3BxYZTfMBKRJyn9zovMTQ+ HsDhOnT6n1ekke1p2eLakbwmet1okUkRAxTrJmMCUDhAoQr05mSgNB2brk40PZLLaxel mQ1Zt+LZi06WHg9Lwv0zwVG/5q0IvCYw6qyUNla9FcPfLD1u0UY2+SLrY5/lBQY1/xpt 0tyRaEQYIuArBfVpFz4+bV7Xn6nNeZFbYldNpXPHF7VEfRNxlnUmdRapU0vcW8bJBrXb S+kiF10L62hd4owi05Ohgl3LSiuKB9I2gGYT2hHKqlax9ed1oVrdXPx4ogCdFdSVkX2S qw== Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by aserp2130.oracle.com with ESMTP id 2qhre5wskx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 15 Feb 2019 13:23:09 +0000 Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id x1FDN8ND006365 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 15 Feb 2019 13:23:08 GMT Received: from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x1FDN7AP012729; Fri, 15 Feb 2019 13:23:07 GMT Received: from ol7.uk.oracle.com (/10.175.220.50) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 15 Feb 2019 05:23:06 -0800 From: Liam Merwick To: stefanb@linux.ibm.com, qemu-devel@nongnu.org Date: Fri, 15 Feb 2019 13:22:57 +0000 Message-Id: <1550236979-15658-1-git-send-email-liam.merwick@oracle.com> X-Mailer: git-send-email 1.8.3.1 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9167 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=818 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1902150095 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 141.146.126.79 Subject: [Qemu-devel] rom c17b1cc4b07370e504cc0ca4ce4af560a83d5977 Mon Sep 17 00:00:00 2001 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: philmd@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP In tpm_tis_mmio_write() if the requesting locality is seizing access, any seizure by a lower locality is cancelled. However the loop doing the seizure had an off-by-one error and the locality immediately preceding the requesting locality was not being cleared. This is fixed by adjusting the test in the for loop to check the localities up to the requesting locality. Signed-off-by: Liam Merwick Reviewed-by: Stefan Berger --- hw/tpm/tpm_tis.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c index fd6bb9b59a96..61a130beef35 100644 --- a/hw/tpm/tpm_tis.c +++ b/hw/tpm/tpm_tis.c @@ -624,7 +624,7 @@ static void tpm_tis_mmio_write(void *opaque, hwaddr addr, } /* cancel any seize by a lower locality */ - for (l = 0; l < locty - 1; l++) { + for (l = 0; l < locty; l++) { s->loc[l].access &= ~TPM_TIS_ACCESS_SEIZE; } From patchwork Fri Feb 15 13:22:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liam Merwick X-Patchwork-Id: 10814959 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 338DD922 for ; Fri, 15 Feb 2019 13:28:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1E5362EB31 for ; Fri, 15 Feb 2019 13:28:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0C2E22E76E; Fri, 15 Feb 2019 13:28:05 +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=-2.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id A1EEE2E76E for ; Fri, 15 Feb 2019 13:28:04 +0000 (UTC) Received: from localhost ([127.0.0.1]:39863 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gudX9-0002RB-Tv for patchwork-qemu-devel@patchwork.kernel.org; Fri, 15 Feb 2019 08:28:03 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44139) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gudSY-00007d-HT for qemu-devel@nongnu.org; Fri, 15 Feb 2019 08:23:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gudSW-0001gF-FC for qemu-devel@nongnu.org; Fri, 15 Feb 2019 08:23:18 -0500 Received: from userp2130.oracle.com ([156.151.31.86]:59322) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gudSU-0001NI-M4 for qemu-devel@nongnu.org; Fri, 15 Feb 2019 08:23:15 -0500 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x1FDIrFG075264; Fri, 15 Feb 2019 13:23:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=corp-2018-07-02; bh=drpJKbR7ITW7GhrWV3fIu0TcaupMVHuAZeOg/jWY90c=; b=Pl4NEhekLb1nfLxzQ6LEaAIJQh0oESPdwuf7ED8TuwSmT+iyTiONaPhAZRiVFZo/Ttbi BAHLEGQ9oAj01OY2/gc6sb7bjFJjxgQ28cWCh0cvBXcqRhLxDIzGo60H71gNR/hjJmQr 9PIInX5ae2vXPT1H1+8Zcwbr9vx1hmrsgBQXP4gC/8rFbeJgCgvl6qQBLgU60eMj4s0/ cHIMZnMzTgmJf6f2TkHvxhFo7rn8Yp3IKe+Andc/Db+76Zr5i/DTRVU9bH04vGRv7Op9 u1f6FrSzrZlZcjrSDFkLv9egCPlgLjJ+fOsPCKalewMWb9xW3KBWgb1uLqwMeCZQZ6Gh dw== Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp2130.oracle.com with ESMTP id 2qhrekwtjd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 15 Feb 2019 13:23:09 +0000 Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id x1FDN8pg021663 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 15 Feb 2019 13:23:09 GMT Received: from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id x1FDN83A031967; Fri, 15 Feb 2019 13:23:08 GMT Received: from ol7.uk.oracle.com (/10.175.220.50) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 15 Feb 2019 05:23:08 -0800 From: Liam Merwick To: stefanb@linux.ibm.com, qemu-devel@nongnu.org Date: Fri, 15 Feb 2019 13:22:58 +0000 Message-Id: <1550236979-15658-2-git-send-email-liam.merwick@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1550236979-15658-1-git-send-email-liam.merwick@oracle.com> References: <1550236979-15658-1-git-send-email-liam.merwick@oracle.com> X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9167 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=702 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1902150095 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 156.151.31.86 Subject: [Qemu-devel] [PATCH v4 2/3] tpm_tis: assert valid addr passed to tpm_tis_locality_from_addr() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: philmd@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Assert that the address passed in results in a valid locality value. Current callers pass a valid address so this is just a defensive check to prevent future caller passing an incorrect address or catch if the MMIO address parameters were not all modified correctly. This is to help static code analysis tools that report that no explicit checking is being done. Signed-off-by: Liam Merwick --- hw/tpm/tpm_tis.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c index 61a130beef35..772431f20874 100644 --- a/hw/tpm/tpm_tis.c +++ b/hw/tpm/tpm_tis.c @@ -100,7 +100,9 @@ static uint64_t tpm_tis_mmio_read(void *opaque, hwaddr addr, static uint8_t tpm_tis_locality_from_addr(hwaddr addr) { - return (uint8_t)((addr >> TPM_TIS_LOCALITY_SHIFT) & 0x7); + uint8_t locty = (uint8_t)(addr >> TPM_TIS_LOCALITY_SHIFT); + assert(TPM_TIS_IS_VALID_LOCTY(locty)); + return locty; } static void tpm_tis_show_buffer(const unsigned char *buffer, From patchwork Fri Feb 15 13:22:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liam Merwick X-Patchwork-Id: 10814957 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 668AC1390 for ; Fri, 15 Feb 2019 13:25:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 548282EB31 for ; Fri, 15 Feb 2019 13:25:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 489F52EF21; Fri, 15 Feb 2019 13:25:45 +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=-2.7 required=2.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B7A952EB31 for ; Fri, 15 Feb 2019 13:25:44 +0000 (UTC) Received: from localhost ([127.0.0.1]:39851 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gudUu-0001iu-1T for patchwork-qemu-devel@patchwork.kernel.org; Fri, 15 Feb 2019 08:25:44 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44136) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gudSY-00007b-Gi for qemu-devel@nongnu.org; Fri, 15 Feb 2019 08:23:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gudSW-0001go-NQ for qemu-devel@nongnu.org; Fri, 15 Feb 2019 08:23:18 -0500 Received: from userp2120.oracle.com ([156.151.31.85]:55890) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gudSW-0001UZ-Dz for qemu-devel@nongnu.org; Fri, 15 Feb 2019 08:23:16 -0500 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x1FDJ8Fg081800; Fri, 15 Feb 2019 13:23:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=corp-2018-07-02; bh=3PQfij0dqhGDwkPvwCVUVc6ixHc3BBAUV6fUpgA4WwQ=; b=wT7wZtJ6yAe2ugK/q/s7QYl9OCD3edo5JJY4xB0UwDV+TbjrLqcr7mh40GBFVBHWBkvY oxzCKl+R3q3QciM4PptCj86PGdLALQiV8HQ+O0gO7+h6Ktc36t0ySoFvD/lVDCJ4O7QD vBsRP1j7uCOn4nigyWIdo6RtQs4m8ibp3+7KttRb815yzhPfdXxezDfipGn5qIZ68CwQ cq8vC0r4et/oKYLZ2HkkCN7IMzA3CJDkzx0yOU+qD6UUmtMpiWwXlDtcTN8FeSRyC3mG 57FDIwnS2cDNvCuD2RJhtk+obs+T2+aZ5Zb6WiozCZvFP/q4MgxFfc0bVwIr8fNHUznu 7g== Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by userp2120.oracle.com with ESMTP id 2qhreedut9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 15 Feb 2019 13:23:11 +0000 Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id x1FDNA5J006532 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 15 Feb 2019 13:23:10 GMT Received: from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id x1FDN9ar031974; Fri, 15 Feb 2019 13:23:09 GMT Received: from ol7.uk.oracle.com (/10.175.220.50) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 15 Feb 2019 05:23:09 -0800 From: Liam Merwick To: stefanb@linux.ibm.com, qemu-devel@nongnu.org Date: Fri, 15 Feb 2019 13:22:59 +0000 Message-Id: <1550236979-15658-3-git-send-email-liam.merwick@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1550236979-15658-1-git-send-email-liam.merwick@oracle.com> References: <1550236979-15658-1-git-send-email-liam.merwick@oracle.com> X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9167 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=2 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1902150095 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 156.151.31.85 Subject: [Qemu-devel] [PATCH v4 3/3] tpm_tis: convert tpm_tis_show_buffer() to use trace event X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: philmd@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP cppcheck reports: [hw/tpm/tpm_tis.c:113]: (warning) %d in format string (no. 2) requires 'int' but the argument type is 'unsigned int' Rather than just converting the format specifier to use '%u", the tpm_tis_show_buffer() function is converted to use trace points and the two debug callers use the trace event infrastructure so that it's available in production cases also and not just when DEBUG_TIS is enabled. Signed-off-by: Liam Merwick --- v3 -> v4 - Allow for null terminator in buffer length calc. - dropped "tpm_tis: " from direction string since function name is now printed - Minor tweak to trace event format string and function parameter names Sample trace output --enable-trace-backends=simple % echo tpm_tis_show_buffer > /tmp/events % export QTEST_QEMU_BINARY="/home/Development/qemu-upstream/x86_64-softmmu/qemu-system-x86_64 --trace events=/tmp/events" % tests/tpm-tis-test /D=/home/Development/qemu-upstream/hw/tpm/tpm-tis/test_check_localities: OK /D=/home/Development/qemu-upstream/hw/tpm/tpm-tis/test_check_access_reg: OK /D=/home/Development/qemu-upstream/hw/tpm/tpm-tis/test_check_access_reg_seize: OK /D=/home/Development/qemu-upstream/hw/tpm/tpm-tis/test_check_access_reg_release: OK /D=/home/Development/qemu-upstream/hw/tpm/tpm-tis/test_check_transmit: OK % ./scripts/simpletrace.py trace-events-all `ls -1rt trace-[0-9]* | tail -1` tpm_tis_show_buffer 0.000 pid=8416 direction=To TPM len=0xc line=80 01 00 00 00 0C 00 00 01 44 00 00 tpm_tis_show_buffer 303.909 pid=8416 direction=From TPM len=0xa line=80 01 00 00 00 0A 00 00 01 01 --enable-trace-backends=log 1255@1550051983.333949:tpm_tis_show_buffer direction: To TPM len: 12 buf: 80 01 00 00 00 0C 00 00 01 44 00 00 1255@1550051983.334213:tpm_tis_show_buffer direction: From TPM len: 10 buf: 80 01 00 00 00 0A 00 00 01 01 hw/tpm/tpm_tis.c | 31 +++++++++++++++++++------------ hw/tpm/trace-events | 1 + 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/hw/tpm/tpm_tis.c b/hw/tpm/tpm_tis.c index 772431f20874..d7b9bee85741 100644 --- a/hw/tpm/tpm_tis.c +++ b/hw/tpm/tpm_tis.c @@ -108,17 +108,26 @@ static uint8_t tpm_tis_locality_from_addr(hwaddr addr) static void tpm_tis_show_buffer(const unsigned char *buffer, size_t buffer_size, const char *string) { - uint32_t len, i; + size_t len, i; + char *line_buffer, *p; len = MIN(tpm_cmd_get_size(buffer), buffer_size); - printf("tpm_tis: %s length = %d\n", string, len); - for (i = 0; i < len; i++) { + + /* + * allocate enough room for 3 chars per buffer entry plus a + * newline after every 16 chars and a final null terminator. + */ + line_buffer = g_malloc(len * 3 + (len / 16) + 1); + + for (i = 0, p = line_buffer; i < len; i++) { if (i && !(i % 16)) { - printf("\n"); + p += sprintf(p, "\n"); } - printf("%.2X ", buffer[i]); + p += sprintf(p, "%.2X ", buffer[i]); } - printf("\n"); + trace_tpm_tis_show_buffer(string, len, line_buffer); + + g_free(line_buffer); } /* @@ -145,9 +154,8 @@ static void tpm_tis_sts_set(TPMLocality *l, uint32_t flags) */ static void tpm_tis_tpm_send(TPMState *s, uint8_t locty) { - if (DEBUG_TIS) { - tpm_tis_show_buffer(s->buffer, s->be_buffer_size, - "tpm_tis: To TPM"); + if (trace_event_get_state_backends(TRACE_TPM_TIS_SHOW_BUFFER)) { + tpm_tis_show_buffer(s->buffer, s->be_buffer_size, "To TPM"); } /* @@ -315,9 +323,8 @@ static void tpm_tis_request_completed(TPMIf *ti, int ret) s->loc[locty].state = TPM_TIS_STATE_COMPLETION; s->rw_offset = 0; - if (DEBUG_TIS) { - tpm_tis_show_buffer(s->buffer, s->be_buffer_size, - "tpm_tis: From TPM"); + if (trace_event_get_state_backends(TRACE_TPM_TIS_SHOW_BUFFER)) { + tpm_tis_show_buffer(s->buffer, s->be_buffer_size, "From TPM"); } if (TPM_TIS_IS_VALID_LOCTY(s->next_locty)) { diff --git a/hw/tpm/trace-events b/hw/tpm/trace-events index 920d32ad5514..f45dcd220993 100644 --- a/hw/tpm/trace-events +++ b/hw/tpm/trace-events @@ -36,6 +36,7 @@ tpm_emulator_pre_save(void) "" tpm_emulator_inst_init(void) "" # hw/tpm/tpm_tis.c +tpm_tis_show_buffer(const char *direction, size_t len, const char *buf) "direction: %s len: %zu\nbuf: %s" tpm_tis_raise_irq(uint32_t irqmask) "Raising IRQ for flag 0x%08x" tpm_tis_new_active_locality(uint8_t locty) "Active locality is now %d" tpm_tis_abort(uint8_t locty) "New active locality is %d"