vTPM: reformat event log to be byte-aligned
authorHon Ching \(Vicky\) Lo <honclo@linux.vnet.ibm.com>
Thu, 8 Oct 2015 00:11:53 +0000 (20:11 -0400)
committerPeter Huewe <peterhuewe@gmx.de>
Sun, 18 Oct 2015 23:01:23 +0000 (01:01 +0200)
The event log generated by OpenFirmware in PowerPC is 4-byte aligned.
This patch reformats the log to be byte-aligned for the Linux client.

Signed-off-by: Hon Ching(Vicky) Lo <honclo@linux.vnet.ibm.com>
Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
arch/powerpc/kernel/prom_init.c

index a8af4d4..7b2e452 100644 (file)
@@ -1425,8 +1425,9 @@ static void __init prom_instantiate_sml(void)
 {
        phandle ibmvtpm_node;
        ihandle ibmvtpm_inst;
-       u32 entry = 0, size = 0;
+       u32 entry = 0, size = 0, succ = 0;
        u64 base;
+       __be32 val;
 
        prom_debug("prom_instantiate_sml: start...\n");
 
@@ -1441,6 +1442,16 @@ static void __init prom_instantiate_sml(void)
                return;
        }
 
+       if (prom_getprop(ibmvtpm_node, "ibm,sml-efi-reformat-supported",
+                        &val, sizeof(val)) != PROM_ERROR) {
+               if (call_prom_ret("call-method", 2, 2, &succ,
+                                 ADDR("reformat-sml-to-efi-alignment"),
+                                 ibmvtpm_inst) != 0 || succ == 0) {
+                       prom_printf("Reformat SML to EFI alignment failed\n");
+                       return;
+               }
+       }
+
        if (call_prom_ret("call-method", 2, 2, &size,
                          ADDR("sml-get-handover-size"),
                          ibmvtpm_inst) != 0 || size == 0) {