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

Junichi Nomura j-nomura at ce.jp.nec.com
Thu Apr 4 21:19:50 PDT 2019


On 4/4/19 4:32 PM, Dave Young wrote:
> While we are still debuggin the bug I reproduced, but for this patch
> I have still some comments inline.
> 
> BTW, it would be good to start a new thread when you send V4 :)

Sure.

>> +	/* 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

OK. I'll make it something like:
	if (!systab) {
		debug_putstr(...);
		return 0;
	}

>>  	if (!pa)
>> +		pa = kexec_get_rsdp_addr();
>> +
>> +	if (!pa)
>>  		pa = efi_get_rsdp_addr();
> 
> In case kexec_get_rsdp_addr failed, above code will try efi_get.. again,
> but that will also fail for same issue this patch is fixing.  In case
> kexec we should avoid the efi_get_rsdp_addr.

Yeah, I'll set efi_kexec_booted to true in kexec_get_rsdp_addr() if it's
kexec booted so that efi_get_rsdp_addr() can exit early in such a case.

-- 
Jun'ichi Nomura, NEC Corporation / NEC Solution Innovators, Ltd.



More information about the kexec mailing list