From: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
To: Nayna Jain <nayna@linux.vnet.ibm.com>
Cc: tpmdd-devel@lists.sourceforge.net, peterhuewe@gmx.de,
tpmdd@selhorst.net, jgunthorpe@obsidianresearch.com,
linux-security-module@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6 1/2] tpm: enhance read_log_of() to support Physical TPM event log
Date: Sat, 26 Nov 2016 18:15:22 +0200 [thread overview]
Message-ID: <20161126161522.umra77n3yqbpwn5u@intel.com> (raw)
In-Reply-To: <1480164339-26409-2-git-send-email-nayna@linux.vnet.ibm.com>
On Sat, Nov 26, 2016 at 07:45:38AM -0500, Nayna Jain wrote:
> Physical TPMs use Open Firmware Device Tree bindings that are similar
> to the IBM Power virtual TPM to support event log. However, these
> properties store the values in different endianness for Physical
> and Virtual TPM.
>
> This patch fixes the endianness issue by doing appropriate conversion
> based on Physical or Virtual TPM.
>
> Signed-off-by: Nayna Jain <nayna@linux.vnet.ibm.com>
> ---
> drivers/char/tpm/tpm_of.c | 27 +++++++++++++++++++++++----
> 1 file changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/char/tpm/tpm_of.c b/drivers/char/tpm/tpm_of.c
> index 7dee42d7..4b0d5e6 100644
> --- a/drivers/char/tpm/tpm_of.c
> +++ b/drivers/char/tpm/tpm_of.c
> @@ -27,6 +27,8 @@ int tpm_read_log_of(struct tpm_chip *chip)
> const u32 *sizep;
> const u64 *basep;
> struct tpm_bios_log *log;
> + u32 log_size;
> + u64 log_base;
Maybe just base and size?
>
> log = &chip->log;
> if (chip->dev.parent && chip->dev.parent->of_node)
> @@ -41,18 +43,35 @@ int tpm_read_log_of(struct tpm_chip *chip)
> if (sizep == NULL || basep == NULL)
> return -EIO;
>
> - if (*sizep == 0) {
> + /*
> + * 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.
> + */
> + if (of_property_match_string(np, "compatible", "IBM,vtpm") < 0) {
> + log_size = be32_to_cpup(sizep);
> + log_base = be64_to_cpup(basep);
> + } else {
> + log_size = *sizep;
> + log_base = *basep;
> + }
> +
> + if (log_size == 0) {
> dev_warn(&chip->dev, "%s: Event log area empty\n", __func__);
> return -EIO;
> }
>
> - log->bios_event_log = kmalloc(*sizep, GFP_KERNEL);
> + log->bios_event_log = kmalloc(log_size, GFP_KERNEL);
> if (!log->bios_event_log)
> return -ENOMEM;
>
> - log->bios_event_log_end = log->bios_event_log + *sizep;
> + log->bios_event_log_end = log->bios_event_log + log_size;
>
> - memcpy(log->bios_event_log, __va(*basep), *sizep);
> + memcpy(chip->log.bios_event_log, __va(log_base), log_size);
Why did you change the first parameter?
>
> return 0;
> }
> --
> 2.5.0
>
/Jarkko
next prev parent reply other threads:[~2016-11-26 16:18 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-26 12:45 [PATCH v6 0/2] securityfs support for TPM 2.0 firmware " Nayna Jain
2016-11-26 12:45 ` [PATCH v6 1/2] tpm: enhance read_log_of() to support Physical TPM " Nayna Jain
2016-11-26 16:15 ` Jarkko Sakkinen [this message]
2016-11-29 9:37 ` Nayna
2016-11-26 12:45 ` [PATCH v6 2/2] tpm: add securityfs support for TPM 2.0 firmware " Nayna Jain
2016-11-26 15:47 ` Jarkko Sakkinen
2016-11-30 16:59 ` Nayna
2016-12-01 11:43 ` Jarkko Sakkinen
2016-12-02 9:31 ` Nayna
2016-12-06 10:23 ` [tpmdd-devel] " Nayna
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161126161522.umra77n3yqbpwn5u@intel.com \
--to=jarkko.sakkinen@linux.intel.com \
--cc=jgunthorpe@obsidianresearch.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=nayna@linux.vnet.ibm.com \
--cc=peterhuewe@gmx.de \
--cc=tpmdd-devel@lists.sourceforge.net \
--cc=tpmdd@selhorst.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®