Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752211AbbEKWHn (ORCPT ); Mon, 11 May 2015 18:07:43 -0400 Received: from e19.ny.us.ibm.com ([129.33.205.209]:57199 "EHLO e19.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750837AbbEKWHh (ORCPT ); Mon, 11 May 2015 18:07:37 -0400 Subject: Re: [PATCH 3/3] vTPM: support little endian guests From: "Joy M. Latten" To: Ashley Lai Cc: "Hon Ching(Vicky) Lo" , tpmdd-devel@lists.sourceforge.net, Peter Huewe , Mimi Zohar , Vicky Lo , linux-kernel@vger.kernel.org In-Reply-To: References: <1430873486-25868-1-git-send-email-honclo@linux.vnet.ibm.com> <1430873486-25868-4-git-send-email-honclo@linux.vnet.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 May 2015 17:07:28 -0500 Message-ID: <1431382048.30108.30.camel@oc8377654763.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.32.3 (2.32.3-30.el6) Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15051122-0057-0000-0000-00000021870F Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2422 Lines: 66 Hi Ashley, On Fri, 2015-05-08 at 17:31 -0500, Ashley Lai wrote: > > The event log in ppc64 arch is always in big endian format. PowerPC > > supports both little endian and big endian guests. This patch converts > > the event log entries to guest format. > > I'm a little confused here. If this patch is to convert the event log > entries why are we convert in the conditional statements? One example > below: > > + if (((convert_to_host_format(event->event_type) == 0) && > + (convert_to_host_format(event->event_size) == 0)) > + || > + ((v + sizeof(struct tcpa_event) + > + convert_to_host_format(event->event_size)) > limit)) > Ah, ok... I see what you are saying.. description may be a bit confusing... we are not converting the event log entries. We are just making sure that raw integers are correctly interpreted on both big and little endian platforms. Phype sends info (including logs) in big endian. Thus any raw integers in that data, like event_size and event_type may become "garbaged" when OS is ppc64-LE. This will ensure raw integers are correctly interpreted for both LE and BE platforms. > > > > We defined a macro to convert to guest format. In addition, > > tpm_binary_bios_measurements_show() is modified to parse the event > > and print each field individually. > > It's nice to have human readable format but it may break existing tools > that parse or understand the machine readable format. Any comments on > this anyone? > Again, description... We have not changed the format. We are just making sure that raw integers are correctly interpreted on both big and little endian platforms for vtpm. > >> > > diff --git a/drivers/char/tpm/tpm_eventlog.c b/drivers/char/tpm/tpm_eventlog.c > > index e77d8c1..1b62c52 100644 > > --- a/drivers/char/tpm/tpm_eventlog.c > > +++ b/drivers/char/tpm/tpm_eventlog.c > > @@ -28,6 +28,11 @@ > > #include "tpm.h" > > #include "tpm_eventlog.h" > > > > +#ifdef CONFIG_PPC64 > > +#define convert_to_host_format(x) be32_to_cpu(x) > > +#else > > +#define convert_to_host_format(x) x > > +#endif > > This can go in the header file tpm_eventlog.h > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/