Re: Boot failure due to: x86/boot: Save fields explicitly, zero out everything else

From: John Hubbard
Date: Wed Aug 21 2019 - 16:02:43 EST


On 8/21/19 12:49 PM, Neil MacLeod wrote:
The fix looks good - many thanks for the quick turnaround!


Great news, and thanks for the bug report!

thanks,
--
John Hubbard
NVIDIA


On Wed, 21 Aug 2019 at 19:56, John Hubbard <jhubbard@xxxxxxxxxx> wrote:

On 8/21/19 11:51 AM, Thomas Gleixner wrote:
On Wed, 21 Aug 2019, John Hubbard wrote:
On 8/21/19 10:05 AM, Neil MacLeod wrote:
static void sanitize_boot_params(struct boot_params *boot_params)
{
...
const struct boot_params_to_save to_save[] = {
BOOT_PARAM_PRESERVE(screen_info),
BOOT_PARAM_PRESERVE(apm_bios_info),
BOOT_PARAM_PRESERVE(tboot_addr),
BOOT_PARAM_PRESERVE(ist_info),
BOOT_PARAM_PRESERVE(acpi_rsdp_addr),
BOOT_PARAM_PRESERVE(hd0_info),
BOOT_PARAM_PRESERVE(hd1_info),
BOOT_PARAM_PRESERVE(sys_desc_table),
BOOT_PARAM_PRESERVE(olpc_ofw_header),
BOOT_PARAM_PRESERVE(efi_info),
BOOT_PARAM_PRESERVE(alt_mem_k),
BOOT_PARAM_PRESERVE(scratch),
BOOT_PARAM_PRESERVE(e820_entries),
BOOT_PARAM_PRESERVE(eddbuf_entries),
BOOT_PARAM_PRESERVE(edd_mbr_sig_buf_entries),
BOOT_PARAM_PRESERVE(edd_mbr_sig_buffer),
BOOT_PARAM_PRESERVE(e820_table),
BOOT_PARAM_PRESERVE(eddbuf),
};

I think I spotted it:

- boot_params->acpi_rsdp_addr = 0;

+ BOOT_PARAM_PRESERVE(acpi_rsdp_addr),

And it does not preserve 'hdr'

Grr. I surely was too tired when staring at this last time.


ohhh man, that's embarrassing. Especially hdr, which was the center of
the whole thing...sigh. Patch coming shortly.


thanks,
--
John Hubbard
NVIDIA