From: Thiebaud Weksteen <tweek@google.com>
To: Jeremy Cline <jeremy@jcline.org>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: hdegoede@redhat.com,
Javier Martinez Canillas <javierm@redhat.com>,
Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>,
linux-efi@vger.kernel.org, linux-integrity@vger.kernel.org,
tpmdd-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org
Subject: Re: Regression from efi: call get_event_log before ExitBootServices
Date: Sat, 10 Mar 2018 10:45:20 +0000 [thread overview]
Message-ID: <CA+zpnLdmg30Beg+uUJNgBQ5gbjXuJ0uVhyzCgf6m7xbx2yARBg@mail.gmail.com> (raw)
In-Reply-To: <010001620bafa06b-41525407-603e-40a9-ba11-6033b2f5dcc7-000000@email.amazonses.com>
On Fri, Mar 9, 2018 at 5:54 PM Jeremy Cline <jeremy@jcline.org> wrote:
> On Fri, Mar 09, 2018 at 10:43:50AM +0000, Thiebaud Weksteen wrote:
> > Thanks a lot for trying out the patch!
> >
> > Please don't modify your install at this stage, I think we are hitting a
> > firmware bug and that would be awesome if we can fix how we are
handling it.
> > So, if we reach that stage in the function it could either be that:
> > * The allocation did not succeed, somehow, but the firmware still
returned
> > EFI_SUCCEED.
> > * The size requested is incorrect (I'm thinking something like a 1G of
> > log). This would be due to either a miscalculation of log_size
(possible)
> > or; the returned values of GetEventLog are not correct.
> > I'm sending a patch to add checks for these. Could you please apply and
> > retest?
> > Again, thanks for helping debugging this.
> No problem, thanks for the help :)
> With the new patch:
> Locating the TCG2Protocol
> Calling GetEventLog on TCG2Protocol
> Log returned
> log_location is not empty
> log_size != 0
> log_size < 1M
> Allocating memory for storing the logs
> Returned from memory allocation
> Copying log to new location
> And then it hangs. I added a couple more print statements:
> diff --git a/drivers/firmware/efi/libstub/tpm.c
b/drivers/firmware/efi/libstub/tpm.c
> index ee3fac109078..1ab5638bc50e 100644
> --- a/drivers/firmware/efi/libstub/tpm.c
> +++ b/drivers/firmware/efi/libstub/tpm.c
> @@ -148,8 +148,11 @@ void
efi_retrieve_tpm2_eventlog_1_2(efi_system_table_t *sys_table_arg)
> efi_printk(sys_table_arg, "Copying log to new location\n");
> memset(log_tbl, 0, sizeof(*log_tbl) + log_size);
> + efi_printk(sys_table_arg, "Successfully memset log_tbl to 0\n");
> log_tbl->size = log_size;
> + efi_printk(sys_table_arg, "Set log_tbl->size\n");
> log_tbl->version = EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2;
> + efi_printk(sys_table_arg, "Set log_tbl-version\n");
> memcpy(log_tbl->log, (void *) first_entry_addr, log_size);
> efi_printk(sys_table_arg, "Installing the log into the
configuration table\n");
> and it's hanging at "memset(log_tbl, 0, sizeof(*log_tbl) + log_size);"
Thanks. Well, it looks like the memory that is supposedly allocated is not
usable. I'm thinking this is a firmware bug.
Ard, would you agree on this assumption? Thoughts on how to proceed?
Thanks
> Regards,
> Jeremy
next prev parent reply other threads:[~2018-03-10 10:45 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-06 16:00 Regression from efi: call get_event_log before ExitBootServices Jeremy Cline
[not found] ` <01000161fc0b4755-df0621f4-ab5d-479a-b425-adf98427a308-000000-p/GC64/jrecnJqMo6gzdpkEOCMrvLtNR@public.gmane.org>
2018-03-07 8:41 ` Thiebaud Weksteen via tpmdd-devel
2018-03-07 11:16 ` Hans de Goede
2018-03-07 12:00 ` Javier Martinez Canillas
2018-03-07 17:33 ` Jeremy Cline
2018-03-08 8:45 ` Thiebaud Weksteen
2018-03-08 18:20 ` Jeremy Cline
[not found] ` <e7c2be5c-cf21-fc2d-efda-d9222d93ffad@redhat.com>
[not found] ` <b32f335c-0d77-1749-f7fe-65f512280255@redhat.com>
[not found] ` <ade378f6-c997-1d48-a30d-cceee6435fc8@redhat.com>
[not found] ` <a3b5f822-f8f4-e2f5-46da-e23e13174f28@redhat.com>
2018-03-08 16:50 ` Hans de Goede
2018-03-08 17:26 ` Jeremy Cline
2018-03-09 9:29 ` Hans de Goede
2018-03-09 10:43 ` Thiebaud Weksteen
2018-03-09 16:54 ` Jeremy Cline
2018-03-10 10:45 ` Thiebaud Weksteen [this message]
2018-03-12 10:17 ` Jarkko Sakkinen
2018-03-12 10:41 ` Paul Menzel
2018-03-16 13:01 ` Jarkko Sakkinen
2018-03-12 11:08 ` Ard Biesheuvel
2018-03-12 14:30 ` Jeremy Cline
2018-03-12 14:56 ` Ard Biesheuvel
2018-03-12 17:01 ` Jeremy Cline
2018-03-12 17:30 ` Ard Biesheuvel
2018-03-12 18:29 ` Thiebaud Weksteen
2018-03-12 18:33 ` Jeremy Cline
2018-03-12 19:55 ` Thiebaud Weksteen
2018-03-12 21:02 ` Ard Biesheuvel
2018-03-13 7:24 ` Thiebaud Weksteen
2018-03-13 8:08 ` Hans de Goede
2018-03-13 1:50 ` Jeremy Cline
2018-03-13 7:47 ` Hans de Goede
2018-03-13 7:59 ` Ard Biesheuvel
2018-03-13 8:02 ` Ard Biesheuvel
2018-03-13 10:23 ` Thiebaud Weksteen
2018-03-13 10:30 ` Ard Biesheuvel
2018-03-13 13:41 ` Jeremy Cline
2018-03-13 13:43 ` Ard Biesheuvel
2018-03-13 15:00 ` Thiebaud Weksteen
2018-03-13 12:51 ` Andy Shevchenko
2018-03-12 18:30 ` Jeremy Cline
2018-03-09 17:03 ` James Bottomley
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=CA+zpnLdmg30Beg+uUJNgBQ5gbjXuJ0uVhyzCgf6m7xbx2yARBg@mail.gmail.com \
--to=tweek@google.com \
--cc=ard.biesheuvel@linaro.org \
--cc=hdegoede@redhat.com \
--cc=jarkko.sakkinen@linux.intel.com \
--cc=javierm@redhat.com \
--cc=jeremy@jcline.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tpmdd-devel@lists.sourceforge.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;
as well as URLs for NNTP newsgroup(s).