Re: [PATCH 3/3] vTPM: support little endian guests

From: Ashley Lai
Date: Fri May 08 2015 - 18:31:32 EST

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))

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?

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)
+#define convert_to_host_format(x) x

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@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at