From: Alexander Graf <agraf@suse.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] Unexpected saving of all environment variables during EFI boot
Date: Thu, 19 Oct 2017 23:05:04 +0200 [thread overview]
Message-ID: <cf8f9dff-bfcc-cf75-2185-9e89fca76ad2@suse.de> (raw)
In-Reply-To: <210ca741-9bed-fa49-345a-d1211623cee2@gmx.de>
On 19.10.17 22:40, Heinrich Schuchardt wrote:
> This was merged as
> ad644e7c18238026fecc647f62584d87d2c5b0a3
> efi_loader: efi variable support
>
>> diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
>> index ec40f41bcb..c406ff82ff 100644
>> --- a/lib/efi_loader/efi_boottime.c
>> +++ b/lib/efi_loader/efi_boottime.c
>> @@ -8,6 +8,7 @@
>>
>> #include <common.h>
>> #include <efi_loader.h>
>> +#include <environment.h>
>> #include <malloc.h>
>> #include <asm/global_data.h>
>> #include <libfdt_env.h>
>> @@ -942,6 +943,11 @@ static efi_status_t EFIAPI efi_exit_boot_services(void *image_handle,
>> {
>> EFI_ENTRY("%p, %ld", image_handle, map_key);
>>
>> +#if defined(CONFIG_CMD_SAVEENV) && !defined(CONFIG_ENV_IS_NOWHERE)
>> + /* save any EFI variables that have been written: */
>> + env_save();
>
> You save all changed variables and not specifically those bound to EFI.
> This is completely unexpected behavior for the user and not covered by
> the commit message.
>
> Furthermore you call env_save even if no EFI variable has been touched
> at all.
>
> This leads to writing to flash on every boot via EFI. Depending on
> technology this might ruin the flash after a few hundred reboots.
I agree that overwriting flash on every boot isn't a terribly smart idea.
Also saving random environment variables that are set while we are in a
distro loop to persistent storage isn't great either.
I agree that we should probably improve this code to only save efi
variables.
Rob, how bad would it be for Fedora if we remove the persistent variable
store call (just the env_save() line) for 2017.11 to not kill people's
storage devices? Then for the next version tackle it for real and only
save efi variable changes here and only if anything really did change.
Alex
next prev parent reply other threads:[~2017-10-19 21:05 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-13 22:05 [U-Boot] [PATCH v3 00/21] efi_loader: enough UEFI for standard distro boot Rob Clark
2017-09-13 22:05 ` [U-Boot] [PATCH v3 01/21] part: move efi_guid_t Rob Clark
2017-09-15 18:19 ` [U-Boot] [U-Boot,v3,01/21] " Heinrich Schuchardt
2017-09-15 18:34 ` Heinrich Schuchardt
2017-09-21 7:04 ` Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 02/21] part: extract MBR signature from partitions Rob Clark
2017-09-21 7:05 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-10-02 18:17 ` [U-Boot] [PATCH v3 " Fabio Estevam
2017-10-02 18:49 ` Peter Robinson
2017-10-02 19:02 ` Fabio Estevam
2017-10-02 19:32 ` Tom Rini
2017-10-03 0:30 ` Fabio Estevam
2017-10-02 19:35 ` Rob Clark
2017-10-03 1:52 ` Fabio Estevam
2017-09-13 22:05 ` [U-Boot] [PATCH v3 03/21] efi: add some missing __packed Rob Clark
2017-09-15 18:53 ` [U-Boot] [U-Boot,v3,03/21] " Heinrich Schuchardt
2017-09-15 18:58 ` Rob Clark
2017-10-03 14:34 ` Peter Jones
2017-09-21 7:04 ` Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 04/21] efi: add some more device path structures Rob Clark
2017-09-21 7:04 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 05/21] efi_loader: add device-path utils Rob Clark
2017-09-20 8:31 ` Alexander Graf
2017-09-20 14:15 ` Rob Clark
2017-09-21 7:04 ` [U-Boot] [U-Boot,v3,05/21] " Alexander Graf
2017-10-28 15:53 ` [U-Boot] [PATCH v3 05/21] " Heinrich Schuchardt
2017-09-13 22:05 ` [U-Boot] [PATCH v3 06/21] efi_loader: drop redundant efi_device_path_protocol Rob Clark
2017-09-21 7:04 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 07/21] efi_loader: flesh out device-path to text Rob Clark
2017-09-21 7:05 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 08/21] efi_loader: use proper device-paths for partitions Rob Clark
2017-09-21 7:05 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 09/21] efi_loader: use proper device-paths for net Rob Clark
2017-09-21 7:05 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 10/21] efi_loader: refactor boot device and loaded_image handling Rob Clark
2017-09-21 7:05 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 11/21] efi_loader: add file/filesys support Rob Clark
2017-09-21 7:04 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 12/21] efi_loader: support load_image() from a file-path Rob Clark
2017-09-21 7:04 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 13/21] efi_loader: make pool allocations cacheline aligned Rob Clark
2017-09-21 7:05 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 14/21] efi_loader: efi variable support Rob Clark
2017-09-21 7:05 ` [U-Boot] [U-Boot,v3,14/21] " Alexander Graf
2017-10-19 20:40 ` [U-Boot] Unexpected saving of all environment variables during EFI boot Heinrich Schuchardt
2017-10-19 21:05 ` Alexander Graf [this message]
2017-10-19 21:15 ` Rob Clark
2017-10-19 21:28 ` Alexander Graf
2017-10-19 22:25 ` Heinrich Schuchardt
2017-10-19 22:15 ` [U-Boot] [PATCH 1/1] efi_loader: disable saving of EFI variables Heinrich Schuchardt
2017-10-22 14:37 ` Simon Glass
2017-09-13 22:05 ` [U-Boot] [PATCH v3 15/21] efi_loader: add bootmgr Rob Clark
2017-09-20 9:08 ` Alexander Graf
2017-09-20 14:09 ` Rob Clark
2017-09-21 4:58 ` Simon Glass
2017-09-21 5:07 ` Alexander Graf
2017-09-21 14:22 ` Rob Clark
2017-09-25 2:14 ` Simon Glass
2017-09-21 7:05 ` [U-Boot] [U-Boot,v3,15/21] " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 16/21] efi_loader: file_path should be variable length Rob Clark
2017-09-21 7:05 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 17/21] efi_loader: set loaded image code/data type properly Rob Clark
2017-09-21 7:05 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 18/21] efi_loader: print GUIDs Rob Clark
2017-09-21 7:04 ` [U-Boot] [U-Boot,v3,18/21] " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 19/21] efi_loader: split out escape sequence based size query Rob Clark
2017-09-21 7:05 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 20/21] efi_loader: Correctly figure out size for vidconsole Rob Clark
2017-09-21 7:04 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-13 22:05 ` [U-Boot] [PATCH v3 21/21] efi_loader: Some console improvements " Rob Clark
2017-09-21 7:05 ` [U-Boot] [U-Boot, v3, " Alexander Graf
2017-09-20 9:32 ` [U-Boot] [PATCH v3 00/21] efi_loader: enough UEFI for standard distro boot Alexander Graf
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=cf8f9dff-bfcc-cf75-2185-9e89fca76ad2@suse.de \
--to=agraf@suse.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox