Messages in this thread | | | Subject | Re: [PATCH] x86/boot: clear rsdp address in boot_params for broken loaders | From | Juergen Gross <> | Date | Tue, 4 Dec 2018 06:32:04 +0100 |
| |
On 04/12/2018 00:07, hpa@zytor.com wrote: > On December 3, 2018 2:38:11 AM PST, Juergen Gross <jgross@suse.com> wrote: >> In case a broken boot loader doesn't clear its struct boot_params clear >> rsdp_addr in sanitize_boot_params(). >> >> This fixes commit e6e094e053af75 ("x86/acpi, x86/boot: Take RSDP >> address from boot params if available") e.g. for the case of a boot via >> systemd-boot. >> >> Fixes: e6e094e053af75 ("x86/acpi, x86/boot: Take RSDP address from boot >> params if available") >> Reported-by: Gunnar Krueger <taijian@posteo.de> >> Tested-by: Gunnar Krueger <taijian@posteo.de> >> Signed-off-by: Juergen Gross <jgross@suse.com> >> --- >> arch/x86/include/asm/bootparam_utils.h | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/arch/x86/include/asm/bootparam_utils.h >> b/arch/x86/include/asm/bootparam_utils.h >> index a07ffd23e4dd..f6f6ef436599 100644 >> --- a/arch/x86/include/asm/bootparam_utils.h >> +++ b/arch/x86/include/asm/bootparam_utils.h >> @@ -36,6 +36,7 @@ static void sanitize_boot_params(struct boot_params >> *boot_params) >> */ >> if (boot_params->sentinel) { >> /* fields in boot_params are left uninitialized, clear them */ >> + boot_params->acpi_rsdp_addr = 0; >> memset(&boot_params->ext_ramdisk_image, 0, >> (char *)&boot_params->efi_info - >> (char *)&boot_params->ext_ramdisk_image); > > Isn't this already covered by the memset()? If not, we should extend the memset() to maximal coverage.
I'd like to send a followup patch doing that. And I'd like to not only test sentinel for being non-zero, but all padding fields as well. This should be 4.21 material, though.
Juergen
| |