On Fri, Jul 15, 2022 at 12:01:36PM -0400, Stefan Berger wrote: > > > On 7/10/22 23:04, Jarkko Sakkinen wrote: > > On Wed, Jul 06, 2022 at 11:23:27AM -0400, Stefan Berger wrote: > > > Simplify tpm_read_log_of() by moving reusable parts of the code into > > > an inline function that makes it commonly available so it can be > > > used also for kexec support. Call the new of_tpm_get_sml_parameters() > > > function from the TPM Open Firmware driver. > > > > > > Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxxxxx> > > > Cc: Jarkko Sakkinen <jarkko@xxxxxxxxxx> > > > Cc: Jason Gunthorpe <jgg@xxxxxxxx> > > > Cc: Rob Herring <robh+dt@xxxxxxxxxx> > > > Cc: Frank Rowand <frowand.list@xxxxxxxxx> > > > > > > --- > > > v4: > > > - converted to inline function > > > --- > > > drivers/char/tpm/eventlog/of.c | 31 +++++-------------------------- > > > include/linux/tpm.h | 27 +++++++++++++++++++++++++++ > > > 2 files changed, 32 insertions(+), 26 deletions(-) > > > > > > diff --git a/drivers/char/tpm/eventlog/of.c b/drivers/char/tpm/eventlog/of.c > > > index a9ce66d09a75..f9462d19632e 100644 > > > --- a/drivers/char/tpm/eventlog/of.c > > > +++ b/drivers/char/tpm/eventlog/of.c > > > @@ -12,6 +12,7 @@ > > > #include <linux/slab.h> > > > #include <linux/of.h> > > > +#include <linux/tpm.h> > > > #include <linux/tpm_eventlog.h> > > > #include "../tpm.h" > > > @@ -20,11 +21,10 @@ > > > int tpm_read_log_of(struct tpm_chip *chip) > > > { > > > struct device_node *np; > > > - const u32 *sizep; > > > - const u64 *basep; > > > struct tpm_bios_log *log; > > > u32 size; > > > u64 base; > > > + int ret; > > > log = &chip->log; > > > if (chip->dev.parent && chip->dev.parent->of_node) > > > @@ -35,30 +35,9 @@ int tpm_read_log_of(struct tpm_chip *chip) > > > if (of_property_read_bool(np, "powered-while-suspended")) > > > chip->flags |= TPM_CHIP_FLAG_ALWAYS_POWERED; > > > - sizep = of_get_property(np, "linux,sml-size", NULL); > > > - basep = of_get_property(np, "linux,sml-base", NULL); > > > - if (sizep == NULL && basep == NULL) > > > - return -ENODEV; > > > - if (sizep == NULL || basep == NULL) > > > - return -EIO; > > > - > > > - /* > > > - * For both vtpm/tpm, firmware has log addr and log size in big > > > - * endian format. But in case of vtpm, there is a method called > > > - * sml-handover which is run during kernel init even before > > > - * device tree is setup. This sml-handover function takes care > > > - * of endianness and writes to sml-base and sml-size in little > > > - * endian format. For this reason, vtpm doesn't need conversion > > > - * but physical tpm needs the conversion. > > > - */ > > > Jarkko, > > can I apply your R-b tag after putting this lost comment back into the > inline function? > Stefan If there's a change I want to see the updated patch first. BR, Jarkko