mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 15:51:30 -05:00
efi: pstore: Request at most 512 bytes for variable names
Work around a quirk in a few old (2011-ish) UEFI implementations, where
a call to `GetNextVariableName` with a buffer size larger than 512 bytes
will always return EFI_INVALID_PARAMETER.
This was already done to efivarfs in commit f45812cc23 ("efivarfs:
Request at most 512 bytes for variable names"), but the second copy of
the variable iteration implementation was overlooked.
Signed-off-by: Tim Schumacher <timschumi@gmx.de>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
committed by
Ard Biesheuvel
parent
4cece76496
commit
24427cda90
@@ -162,7 +162,15 @@ static ssize_t efi_pstore_read(struct pstore_record *record)
|
||||
efi_status_t status;
|
||||
|
||||
for (;;) {
|
||||
varname_size = 1024;
|
||||
/*
|
||||
* A small set of old UEFI implementations reject sizes
|
||||
* above a certain threshold, the lowest seen in the wild
|
||||
* is 512.
|
||||
*
|
||||
* TODO: Commonize with the iteration implementation in
|
||||
* fs/efivarfs to keep all the quirks in one place.
|
||||
*/
|
||||
varname_size = 512;
|
||||
|
||||
/*
|
||||
* If this is the first read() call in the pstore enumeration,
|
||||
|
||||
Reference in New Issue
Block a user