[PATCH 1/2] powerpc/tpm: Create linux,sml-base/size as big endian

Michael Ellerman mpe at ellerman.id.au
Tue Feb 28 22:21:36 AEDT 2023


Jarkko Sakkinen <jarkko at kernel.org> writes:
> On Mon, Feb 27, 2023 at 06:08:31PM -0500, Stefan Berger wrote:
>> On 2/23/23 22:25, Michael Ellerman wrote:
>> > There's code in prom_instantiate_sml() to do a "SML handover" (Stored
>> > Measurement Log) from OF to Linux, before Linux shuts down Open
>> > Firmware.
>> > 
>> > This involves creating a buffer to hold the SML, and creating two device
>> > tree properties to record its base address and size. The kernel then
>> > later reads those properties from the device tree to find the SML.
>> > 
>> > When the code was initially added in commit 4a727429abec ("PPC64: Add
>> > support for instantiating SML from Open Firmware") the powerpc kernel
>> > was always built big endian, so the properties were created big endian
>> > by default.
>> > 
>> > However since then little endian support was added to powerpc, and now
>> > the code lacks conversions to big endian when creating the properties.
>> > 
>> > This means on little endian kernels the device tree properties are
>> > little endian, which is contrary to the device tree spec, and in
>> > contrast to all other device tree properties.
>> > 
>> > To cope with that a workaround was added in tpm_read_log_of() to skip
>> > the endian conversion if the properties were created via the SML
>> > handover.
>> > 
>> > A better solution is to encode the properties as big endian as they
>> > should be, and remove the workaround.
>> > 
>> > Typically changing the encoding of a property like this would present
>> > problems for kexec. However the SML is not propagated across kexec, so
>> > changing the encoding of the properties is a non-issue.
>> > 
>> > Fixes: e46e22f12b19 ("tpm: enhance read_log_of() to support Physical TPM event log")
>> > Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
>> 
>> Reviewed-by: Stefan Berger <stefanb at linux.ibm.com>
>
> 2/2 does not have a fixes tag.

True. Arguably the bug goes back to the introduction of
kexec_file_load() support, although the patch won't backport that far
due to code refactoring. So that would be:

Fixes: a0458284f062 ("powerpc: Add support code for kexec_file_load()")

cheers


More information about the Linuxppc-dev mailing list