Commit 66d67fec authored by steve.wahl@hpe.com's avatar steve.wahl@hpe.com Committed by Thomas Gleixner
Browse files

x86/efi: Remove references to no-longer-used efi_have_uv1_memmap()



In removing UV1 support, efi_have_uv1_memmap is no longer used.

Signed-off-by: default avatarSteve Wahl <steve.wahl@hpe.com>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Reviewed-by: default avatarArd Biesheuvel <ardb@kernel.org>
Link: https://lkml.kernel.org/r/20200713212955.786177105@hpe.com
parent cadde237
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -170,15 +170,6 @@ setup_efi_state(struct boot_params *params, unsigned long params_load_addr,
	if (!current_ei->efi_memmap_size)
		return 0;

	/*
	 * If 1:1 mapping is not enabled, second kernel can not setup EFI
	 * and use EFI run time services. User space will have to pass
	 * acpi_rsdp=<addr> on kernel command line to make second kernel boot
	 * without efi.
	 */
	if (efi_have_uv1_memmap())
		return 0;

	params->secure_boot = boot_params.secure_boot;
	ei->efi_loader_signature = current_ei->efi_loader_signature;
	ei->efi_systab = current_ei->efi_systab;
+3 −11
Original line number Diff line number Diff line
@@ -648,7 +648,7 @@ static inline void *efi_map_next_entry_reverse(void *entry)
 */
static void *efi_map_next_entry(void *entry)
{
	if (!efi_have_uv1_memmap() && efi_enabled(EFI_64BIT)) {
	if (efi_enabled(EFI_64BIT)) {
		/*
		 * Starting in UEFI v2.5 the EFI_PROPERTIES_TABLE
		 * config table feature requires us to map all entries
@@ -777,11 +777,9 @@ static void __init kexec_enter_virtual_mode(void)

	/*
	 * We don't do virtual mode, since we don't do runtime services, on
	 * non-native EFI. With the UV1 memmap, we don't do runtime services in
	 * kexec kernel because in the initial boot something else might
	 * have been mapped at these virtual addresses.
	 * non-native EFI.
	 */
	if (efi_is_mixed() || efi_have_uv1_memmap()) {
	if (efi_is_mixed()) {
		efi_memmap_unmap();
		clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
		return;
@@ -832,12 +830,6 @@ static void __init kexec_enter_virtual_mode(void)
 * has the runtime attribute bit set in its memory descriptor into the
 * efi_pgd page table.
 *
 * The old method which used to update that memory descriptor with the
 * virtual address obtained from ioremap() is still supported when the
 * kernel is booted on SG1 UV1 hardware. Same old method enabled the
 * runtime services to be called without having to thunk back into
 * physical mode for every invocation.
 *
 * The new method does a pagetable switch in a preemption-safe manner
 * so that we're in a different address space when calling a runtime
 * function. For function arguments passing we do copy the PUDs of the
+3 −35
Original line number Diff line number Diff line
@@ -74,9 +74,6 @@ int __init efi_alloc_page_tables(void)
	pud_t *pud;
	gfp_t gfp_mask;

	if (efi_have_uv1_memmap())
		return 0;

	gfp_mask = GFP_KERNEL | __GFP_ZERO;
	efi_pgd = (pgd_t *)__get_free_pages(gfp_mask, PGD_ALLOCATION_ORDER);
	if (!efi_pgd)
@@ -115,9 +112,6 @@ void efi_sync_low_kernel_mappings(void)
	pud_t *pud_k, *pud_efi;
	pgd_t *efi_pgd = efi_mm.pgd;

	if (efi_have_uv1_memmap())
		return;

	/*
	 * We can share all PGD entries apart from the one entry that
	 * covers the EFI runtime mapping space.
@@ -206,9 +200,6 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages)
	unsigned npages;
	pgd_t *pgd = efi_mm.pgd;

	if (efi_have_uv1_memmap())
		return 0;

	/*
	 * It can happen that the physical address of new_memmap lands in memory
	 * which is not mapped in the EFI page table. Therefore we need to go
@@ -315,9 +306,6 @@ void __init efi_map_region(efi_memory_desc_t *md)
	unsigned long size = md->num_pages << PAGE_SHIFT;
	u64 pa = md->phys_addr;

	if (efi_have_uv1_memmap())
		return old_map_region(md);

	/*
	 * Make sure the 1:1 mappings are present as a catch-all for b0rked
	 * firmware which doesn't update all internal pointers after switching
@@ -420,12 +408,6 @@ void __init efi_runtime_update_mappings(void)
{
	efi_memory_desc_t *md;

	if (efi_have_uv1_memmap()) {
		if (__supported_pte_mask & _PAGE_NX)
			runtime_code_page_mkexec();
		return;
	}

	/*
	 * Use the EFI Memory Attribute Table for mapping permissions if it
	 * exists, since it is intended to supersede EFI_PROPERTIES_TABLE.
@@ -474,9 +456,6 @@ void __init efi_runtime_update_mappings(void)
void __init efi_dump_pagetable(void)
{
#ifdef CONFIG_EFI_PGT_DUMP
	if (efi_have_uv1_memmap())
		ptdump_walk_pgd_level(NULL, &init_mm);
	else
	ptdump_walk_pgd_level(NULL, &efi_mm);
#endif
}
@@ -849,21 +828,13 @@ efi_set_virtual_address_map(unsigned long memory_map_size,
	const efi_system_table_t *systab = (efi_system_table_t *)systab_phys;
	efi_status_t status;
	unsigned long flags;
	pgd_t *save_pgd = NULL;

	if (efi_is_mixed())
		return efi_thunk_set_virtual_address_map(memory_map_size,
							 descriptor_size,
							 descriptor_version,
							 virtual_map);

	if (efi_have_uv1_memmap()) {
		save_pgd = efi_uv1_memmap_phys_prolog();
		if (!save_pgd)
			return EFI_ABORTED;
	} else {
	efi_switch_mm(&efi_mm);
	}

	kernel_fpu_begin();

@@ -879,9 +850,6 @@ efi_set_virtual_address_map(unsigned long memory_map_size,
	/* grab the virtually remapped EFI runtime services table pointer */
	efi.runtime = READ_ONCE(systab->runtime);

	if (save_pgd)
		efi_uv1_memmap_phys_epilog(save_pgd);
	else
	efi_switch_mm(efi_scratch.prev_mm);

	return status;
+0 −8
Original line number Diff line number Diff line
@@ -380,14 +380,6 @@ static void __init efi_unmap_pages(efi_memory_desc_t *md)
	u64 pa = md->phys_addr;
	u64 va = md->virt_addr;

	/*
	 * To Do: Remove this check after adding functionality to unmap EFI boot
	 * services code/data regions from direct mapping area because the UV1
	 * memory map maps EFI regions in swapper_pg_dir.
	 */
	if (efi_have_uv1_memmap())
		return;

	/*
	 * EFI mixed mode has all RAM mapped to access arguments while making
	 * EFI runtime calls, hence don't unmap EFI boot services code/data