From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
To: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Cc: Sughosh Ganu <sughosh.ganu@linaro.org>, u-boot@lists.denx.de
Subject: Re: [PATCH v2 1/1] efi_leader: delete rng-seed if having EFI RNG protocol
Date: Tue, 17 Sep 2024 09:38:02 +0300 [thread overview]
Message-ID: <ZukjyhHgzQB3SCvf@hera> (raw)
In-Reply-To: <20240914160812.43632-1-heinrich.schuchardt@canonical.com>
Hi Heinrich,
On Sat, Sep 14, 2024 at 06:08:12PM +0200, Heinrich Schuchardt wrote:
> For measured be boot we must avoid any volatile values in the device-tree.
> We already delete /chosen/kaslr-seed if we provide and EFI RNG protocol.
>
> Additionally remove /chosen/rng-seed provided by QEMU or U-Boot.
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
> ---
> v2:
> put log_debug() in else branch
> ---
> include/efi_loader.h | 2 +-
> lib/efi_loader/efi_dt_fixup.c | 16 +++++++++++-----
> lib/efi_loader/efi_helper.c | 2 +-
> 3 files changed, 13 insertions(+), 7 deletions(-)
>
> diff --git a/include/efi_loader.h b/include/efi_loader.h
> index f84852e384f..511281e150e 100644
> --- a/include/efi_loader.h
> +++ b/include/efi_loader.h
> @@ -567,7 +567,7 @@ efi_status_t EFIAPI efi_convert_pointer(efi_uintn_t debug_disposition,
> /* Carve out DT reserved memory ranges */
> void efi_carve_out_dt_rsv(void *fdt);
> /* Purge unused kaslr-seed */
> -void efi_try_purge_kaslr_seed(void *fdt);
> +void efi_try_purge_rng_seed(void *fdt);
> /* Called by bootefi to make console interface available */
> efi_status_t efi_console_register(void);
> /* Called by efi_init_obj_list() to proble all block devices */
> diff --git a/lib/efi_loader/efi_dt_fixup.c b/lib/efi_loader/efi_dt_fixup.c
> index 9d017804eea..b97758d1305 100644
> --- a/lib/efi_loader/efi_dt_fixup.c
> +++ b/lib/efi_loader/efi_dt_fixup.c
> @@ -41,7 +41,7 @@ static void efi_reserve_memory(u64 addr, u64 size, bool nomap)
> }
>
> /**
> - * efi_try_purge_kaslr_seed() - Remove unused kaslr-seed
> + * efi_try_purge_rng_seed() - Remove unused kaslr-seed, rng-seed
> *
> * Kernel's EFI STUB only relies on EFI_RNG_PROTOCOL for randomization
> * and completely ignores the kaslr-seed for its own randomness needs
> @@ -51,8 +51,9 @@ static void efi_reserve_memory(u64 addr, u64 size, bool nomap)
> *
> * @fdt: Pointer to device tree
> */
> -void efi_try_purge_kaslr_seed(void *fdt)
> +void efi_try_purge_rng_seed(void *fdt)
> {
> + const char * const prop[] = {"kaslr-seed", "rng-seed"};
> const efi_guid_t efi_guid_rng_protocol = EFI_RNG_PROTOCOL_GUID;
> struct efi_handler *handler;
> efi_status_t ret;
> @@ -67,9 +68,14 @@ void efi_try_purge_kaslr_seed(void *fdt)
> if (nodeoff < 0)
> return;
>
> - err = fdt_delprop(fdt, nodeoff, "kaslr-seed");
> - if (err < 0 && err != -FDT_ERR_NOTFOUND)
> - log_err("Error deleting kaslr-seed\n");
> + for (const char * const *pos = prop; pos < &prop[ARRAY_SIZE(prop)];
I think
for (int i = 0; i < ARRAY_SIZE(prop); i++)
fdt_delprop(fdt, nodeoff, prop[i]);
is a lot easier to read
Other than that, the patch looks fine
Thanks
/Ilias
> + ++pos) {
> + err = fdt_delprop(fdt, nodeoff, *pos);
> + if (err < 0 && err != -FDT_ERR_NOTFOUND)
> + log_err("Error deleting %s\n", *pos);
> + else
> + log_debug("Deleted /chosen/%s\n", *pos);
> + }
> }
>
> /**
> diff --git a/lib/efi_loader/efi_helper.c b/lib/efi_loader/efi_helper.c
> index 96f847652ec..a481eb4b7e3 100644
> --- a/lib/efi_loader/efi_helper.c
> +++ b/lib/efi_loader/efi_helper.c
> @@ -522,7 +522,7 @@ efi_status_t efi_install_fdt(void *fdt)
> /* Create memory reservations as indicated by the device tree */
> efi_carve_out_dt_rsv(fdt);
>
> - efi_try_purge_kaslr_seed(fdt);
> + efi_try_purge_rng_seed(fdt);
>
> if (CONFIG_IS_ENABLED(EFI_TCG2_PROTOCOL_MEASURE_DTB)) {
> ret = efi_tcg2_measure_dtb(fdt);
> --
> 2.45.2
>
next prev parent reply other threads:[~2024-09-17 6:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-14 16:08 [PATCH v2 1/1] efi_leader: delete rng-seed if having EFI RNG protocol Heinrich Schuchardt
2024-09-17 6:38 ` Ilias Apalodimas [this message]
2024-09-17 8:46 ` Heinrich Schuchardt
-- strict thread matches above, loose matches on Subject: below --
2024-09-17 8:49 Heinrich Schuchardt
2024-09-17 8:57 ` Ilias Apalodimas
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=ZukjyhHgzQB3SCvf@hera \
--to=ilias.apalodimas@linaro.org \
--cc=heinrich.schuchardt@canonical.com \
--cc=sughosh.ganu@linaro.org \
--cc=u-boot@lists.denx.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.