diff options
author | Ard Biesheuvel <ardb@kernel.org> | 2022-10-20 10:39:08 +0200 |
---|---|---|
committer | Ard Biesheuvel <ardb@kernel.org> | 2022-10-24 10:21:02 +0200 |
commit | 161a438d730dade2ba2b1bf8785f0759aba4ca5f (patch) | |
tree | 08ae9c2b254af749636e5653e9223e04324ea83b /drivers/firmware/efi/efi.c | |
parent | efi/tpm: Pass correct address to memblock_reserve (diff) | |
download | linux-161a438d730dade2ba2b1bf8785f0759aba4ca5f.tar.xz linux-161a438d730dade2ba2b1bf8785f0759aba4ca5f.zip |
efi: random: reduce seed size to 32 bytes
We no longer need at least 64 bytes of random seed to permit the early
crng init to complete. The RNG is now based on Blake2s, so reduce the
EFI seed size to the Blake2s hash size, which is sufficient for our
purposes.
While at it, drop the READ_ONCE(), which was supposed to prevent size
from being evaluated after seed was unmapped. However, this cannot
actually happen, so READ_ONCE() is unnecessary here.
Cc: <stable@vger.kernel.org> # v4.14+
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Jason A. Donenfeld <Jason@zx2c4.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Diffstat (limited to 'drivers/firmware/efi/efi.c')
-rw-r--r-- | drivers/firmware/efi/efi.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index 3ecdc43a3f2b..a46df5d1d094 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -611,7 +611,7 @@ int __init efi_config_parse_tables(const efi_config_table_t *config_tables, seed = early_memremap(efi_rng_seed, sizeof(*seed)); if (seed != NULL) { - size = READ_ONCE(seed->size); + size = min(seed->size, EFI_RANDOM_SEED_SIZE); early_memunmap(seed, sizeof(*seed)); } else { pr_err("Could not map UEFI random seed!\n"); |