Re: [PATCH v4] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernel

From: Borislav Petkov
Date: Thu Apr 11 2019 - 04:37:44 EST


On Thu, Apr 11, 2019 at 08:16:45AM +0000, Junichi Nomura wrote:
> kexec_get_rsdp_addr() might fail on kexec-booted kernel, e.g. if the
> setup_data was invalid. In such a case, falling back to efi_get_rsdp_addr()
> will hit the problem of accessing invalid table pointer again.

Then you need to do this:

if (kexeced kernel) {
addr = kexec_get_rsdp_addr();
if (!addr) {
/* cannot get address */
return -1;
}

return addr;
}

and the calling function get_rsdp_addr() must check the return value and
if it is not 0, return immediately.

--
Regards/Gruss,
Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.