Since commit
33b85447fa61946b ("efi/x86: Drop two near identical versions
of efi_runtime_init()"), we no longer map the EFI runtime services table
before calling SetVirtualAddressMap(), which means we don't need the 1:1
mapped physical address of this table, and so there is no point in passing
the address via EFI setup data on kexec boot.
Note that the kexec tools will still look for this address in sysfs, so
we still need to provide it.
Tested-by: Tony Luck <tony.luck@intel.com> # arch/ia64
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
struct efi_setup_data {
u64 fw_vendor;
struct efi_setup_data {
u64 fw_vendor;
u64 tables;
u64 smbios;
u64 reserved[8];
u64 tables;
u64 smbios;
u64 reserved[8];
struct efi_setup_data *esd = (void *)sd + sizeof(struct setup_data);
esd->fw_vendor = efi.fw_vendor;
struct efi_setup_data *esd = (void *)sd + sizeof(struct setup_data);
esd->fw_vendor = efi.fw_vendor;
- esd->runtime = efi.runtime;
esd->tables = efi.config_table;
esd->smbios = efi.smbios;
esd->tables = efi.config_table;
esd->smbios = efi.smbios;
systab64->con_out > U32_MAX ||
systab64->stderr_handle > U32_MAX ||
systab64->stderr > U32_MAX ||
systab64->con_out > U32_MAX ||
systab64->stderr_handle > U32_MAX ||
systab64->stderr > U32_MAX ||
+ systab64->runtime > U32_MAX ||
systab64->boottime > U32_MAX;
if (efi_setup) {
systab64->boottime > U32_MAX;
if (efi_setup) {
}
efi_systab.fw_vendor = (unsigned long)data->fw_vendor;
}
efi_systab.fw_vendor = (unsigned long)data->fw_vendor;
- efi_systab.runtime = (void *)(unsigned long)data->runtime;
efi_systab.tables = (unsigned long)data->tables;
over4g |= data->fw_vendor > U32_MAX ||
efi_systab.tables = (unsigned long)data->tables;
over4g |= data->fw_vendor > U32_MAX ||
- data->runtime > U32_MAX ||
data->tables > U32_MAX;
early_memunmap(data, sizeof(*data));
} else {
over4g |= systab64->fw_vendor > U32_MAX ||
data->tables > U32_MAX;
early_memunmap(data, sizeof(*data));
} else {
over4g |= systab64->fw_vendor > U32_MAX ||
- systab64->runtime > U32_MAX ||
systab64->tables > U32_MAX;
}
} else {
systab64->tables > U32_MAX;
}
} else {