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

Dave Young
2019-04-04T14:12:51Z

On 04/04/19 at 02:24pm, Borislav Petkov wrote:
> On Thu, Apr 04, 2019 at 03:32:33PM +0800, Dave Young wrote:
> > BTW, it would be good to start a new thread when you send V4 :)
>
> Yes please.
>
> > > + /* Get systab from boot params. */
> > > + systab = (efi_system_table_64_t *) (ei->efi_systab | ((__u64)ei->efi_systab_hi << 32));
> > > + if (!systab)
> > > + error("EFI system table not found in kexec boot_params.");
> >
> > Instead of hang the system, return 0 should be better
>
> Can the kexec kernel even function if we fail here?

It only bootable when people provide acpi_rsdp via cmdline or
boot_params. According to current code logic, cmdline/boot_param is
handled first so kexec boot will not work in this case.

The early code hang can make people confused, it is hard to
say what happens and not easy to debug. But if we return 0 then kernel
just continue to boot, and fail later because of no acpi root pointer, at
least we can have some kernel boot log.

Thanks
Dave