Commit 793473c2 authored by Arvind Sankar's avatar Arvind Sankar Committed by Ard Biesheuvel
Browse files

efi/libstub: Move pr_efi/pr_efi_err into efi namespace



Rename pr_efi to efi_info and pr_efi_err to efi_err to make it more
obvious that they are part of the EFI stub and not generic printk infra.

Suggested-by: default avatarJoe Perches <joe@perches.com>
Signed-off-by: default avatarArvind Sankar <nivedita@alum.mit.edu>
Link: https://lore.kernel.org/r/20200430182843.2510180-4-nivedita@alum.mit.edu


Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent eed4e019
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ efi_status_t check_platform_features(void)
	/* LPAE kernels need compatible hardware */
	block = cpuid_feature_extract(CPUID_EXT_MMFR0, 0);
	if (block < 5) {
		pr_efi_err("This LPAE kernel is not supported by your CPU\n");
		efi_err("This LPAE kernel is not supported by your CPU\n");
		return EFI_UNSUPPORTED;
	}
	return EFI_SUCCESS;
@@ -120,7 +120,7 @@ static efi_status_t reserve_kernel_base(unsigned long dram_base,
	 */
	status = efi_get_memory_map(&map);
	if (status != EFI_SUCCESS) {
		pr_efi_err("reserve_kernel_base(): Unable to retrieve memory map.\n");
		efi_err("reserve_kernel_base(): Unable to retrieve memory map.\n");
		return status;
	}

@@ -162,7 +162,7 @@ static efi_status_t reserve_kernel_base(unsigned long dram_base,
					     (end - start) / EFI_PAGE_SIZE,
					     &start);
			if (status != EFI_SUCCESS) {
				pr_efi_err("reserve_kernel_base(): alloc failed.\n");
				efi_err("reserve_kernel_base(): alloc failed.\n");
				goto out;
			}
			break;
@@ -219,7 +219,7 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,

	status = reserve_kernel_base(kernel_base, reserve_addr, reserve_size);
	if (status != EFI_SUCCESS) {
		pr_efi_err("Unable to allocate memory for uncompressed kernel.\n");
		efi_err("Unable to allocate memory for uncompressed kernel.\n");
		return status;
	}

@@ -232,7 +232,7 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
	status = efi_relocate_kernel(image_addr, *image_size, *image_size,
				     kernel_base + MAX_UNCOMP_KERNEL_SIZE, 0, 0);
	if (status != EFI_SUCCESS) {
		pr_efi_err("Failed to relocate kernel.\n");
		efi_err("Failed to relocate kernel.\n");
		efi_free(*reserve_size, *reserve_addr);
		*reserve_size = 0;
		return status;
@@ -244,7 +244,7 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
	 * address at which the zImage is loaded.
	 */
	if (*image_addr + *image_size > dram_base + ZIMAGE_OFFSET_LIMIT) {
		pr_efi_err("Failed to relocate kernel, no low memory available.\n");
		efi_err("Failed to relocate kernel, no low memory available.\n");
		efi_free(*reserve_size, *reserve_addr);
		*reserve_size = 0;
		efi_free(*image_size, *image_addr);
+7 −7
Original line number Diff line number Diff line
@@ -26,9 +26,9 @@ efi_status_t check_platform_features(void)
	tg = (read_cpuid(ID_AA64MMFR0_EL1) >> ID_AA64MMFR0_TGRAN_SHIFT) & 0xf;
	if (tg != ID_AA64MMFR0_TGRAN_SUPPORTED) {
		if (IS_ENABLED(CONFIG_ARM64_64K_PAGES))
			pr_efi_err("This 64 KB granular kernel is not supported by your CPU\n");
			efi_err("This 64 KB granular kernel is not supported by your CPU\n");
		else
			pr_efi_err("This 16 KB granular kernel is not supported by your CPU\n");
			efi_err("This 16 KB granular kernel is not supported by your CPU\n");
		return EFI_UNSUPPORTED;
	}
	return EFI_SUCCESS;
@@ -59,18 +59,18 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
			status = efi_get_random_bytes(sizeof(phys_seed),
						      (u8 *)&phys_seed);
			if (status == EFI_NOT_FOUND) {
				pr_efi("EFI_RNG_PROTOCOL unavailable, no randomness supplied\n");
				efi_info("EFI_RNG_PROTOCOL unavailable, no randomness supplied\n");
			} else if (status != EFI_SUCCESS) {
				pr_efi_err("efi_get_random_bytes() failed\n");
				efi_err("efi_get_random_bytes() failed\n");
				return status;
			}
		} else {
			pr_efi("KASLR disabled on kernel command line\n");
			efi_info("KASLR disabled on kernel command line\n");
		}
	}

	if (image->image_base != _text)
		pr_efi_err("FIRMWARE BUG: efi_loaded_image_t::image_base has bogus value\n");
		efi_err("FIRMWARE BUG: efi_loaded_image_t::image_base has bogus value\n");

	kernel_size = _edata - _text;
	kernel_memsize = kernel_size + (_end - _edata);
@@ -102,7 +102,7 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
						    ULONG_MAX, min_kimg_align);

		if (status != EFI_SUCCESS) {
			pr_efi_err("Failed to relocate kernel\n");
			efi_err("Failed to relocate kernel\n");
			*reserve_size = 0;
			return status;
		}
+16 −16
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ static void install_memreserve_table(void)
	status = efi_bs_call(allocate_pool, EFI_LOADER_DATA, sizeof(*rsv),
			     (void **)&rsv);
	if (status != EFI_SUCCESS) {
		pr_efi_err("Failed to allocate memreserve entry!\n");
		efi_err("Failed to allocate memreserve entry!\n");
		return;
	}

@@ -80,7 +80,7 @@ static void install_memreserve_table(void)
	status = efi_bs_call(install_configuration_table,
			     &memreserve_table_guid, rsv);
	if (status != EFI_SUCCESS)
		pr_efi_err("Failed to install memreserve config table!\n");
		efi_err("Failed to install memreserve config table!\n");
}

static unsigned long get_dram_base(void)
@@ -182,13 +182,13 @@ efi_status_t efi_entry(efi_handle_t handle, efi_system_table_t *sys_table_arg)
	status = efi_system_table->boottime->handle_protocol(handle,
					&loaded_image_proto, (void *)&image);
	if (status != EFI_SUCCESS) {
		pr_efi_err("Failed to get loaded image protocol\n");
		efi_err("Failed to get loaded image protocol\n");
		goto fail;
	}

	dram_base = get_dram_base();
	if (dram_base == EFI_ERROR) {
		pr_efi_err("Failed to find DRAM base\n");
		efi_err("Failed to find DRAM base\n");
		status = EFI_LOAD_ERROR;
		goto fail;
	}
@@ -200,7 +200,7 @@ efi_status_t efi_entry(efi_handle_t handle, efi_system_table_t *sys_table_arg)
	 */
	cmdline_ptr = efi_convert_cmdline(image, &cmdline_size, ULONG_MAX);
	if (!cmdline_ptr) {
		pr_efi_err("getting command line via LOADED_IMAGE_PROTOCOL\n");
		efi_err("getting command line via LOADED_IMAGE_PROTOCOL\n");
		status = EFI_OUT_OF_RESOURCES;
		goto fail;
	}
@@ -213,7 +213,7 @@ efi_status_t efi_entry(efi_handle_t handle, efi_system_table_t *sys_table_arg)
	if (!IS_ENABLED(CONFIG_CMDLINE_FORCE) && cmdline_size > 0)
		efi_parse_options(cmdline_ptr);

	pr_efi("Booting Linux Kernel...\n");
	efi_info("Booting Linux Kernel...\n");

	si = setup_graphics();

@@ -222,7 +222,7 @@ efi_status_t efi_entry(efi_handle_t handle, efi_system_table_t *sys_table_arg)
				     &reserve_size,
				     dram_base, image);
	if (status != EFI_SUCCESS) {
		pr_efi_err("Failed to relocate kernel\n");
		efi_err("Failed to relocate kernel\n");
		goto fail_free_cmdline;
	}

@@ -241,42 +241,42 @@ efi_status_t efi_entry(efi_handle_t handle, efi_system_table_t *sys_table_arg)
	if (!IS_ENABLED(CONFIG_EFI_ARMSTUB_DTB_LOADER) ||
	     secure_boot != efi_secureboot_mode_disabled) {
		if (strstr(cmdline_ptr, "dtb="))
			pr_efi("Ignoring DTB from command line.\n");
			efi_info("Ignoring DTB from command line.\n");
	} else {
		status = efi_load_dtb(image, &fdt_addr, &fdt_size);

		if (status != EFI_SUCCESS) {
			pr_efi_err("Failed to load device tree!\n");
			efi_err("Failed to load device tree!\n");
			goto fail_free_image;
		}
	}

	if (fdt_addr) {
		pr_efi("Using DTB from command line\n");
		efi_info("Using DTB from command line\n");
	} else {
		/* Look for a device tree configuration table entry. */
		fdt_addr = (uintptr_t)get_fdt(&fdt_size);
		if (fdt_addr)
			pr_efi("Using DTB from configuration table\n");
			efi_info("Using DTB from configuration table\n");
	}

	if (!fdt_addr)
		pr_efi("Generating empty DTB\n");
		efi_info("Generating empty DTB\n");

	if (!efi_noinitrd) {
		max_addr = efi_get_max_initrd_addr(dram_base, image_addr);
		status = efi_load_initrd_dev_path(&initrd_addr, &initrd_size,
						  max_addr);
		if (status == EFI_SUCCESS) {
			pr_efi("Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path\n");
			efi_info("Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path\n");
		} else if (status == EFI_NOT_FOUND) {
			status = efi_load_initrd(image, &initrd_addr, &initrd_size,
						 ULONG_MAX, max_addr);
			if (status == EFI_SUCCESS && initrd_size > 0)
				pr_efi("Loaded initrd from command line option\n");
				efi_info("Loaded initrd from command line option\n");
		}
		if (status != EFI_SUCCESS)
			pr_efi_err("Failed to load initrd!\n");
			efi_err("Failed to load initrd!\n");
	}

	efi_random_get_seed();
@@ -326,7 +326,7 @@ efi_status_t efi_entry(efi_handle_t handle, efi_system_table_t *sys_table_arg)
	/* not reached */

fail_free_initrd:
	pr_efi_err("Failed to update FDT and exit boot services\n");
	efi_err("Failed to update FDT and exit boot services\n");

	efi_free(initrd_size, initrd_addr);
	efi_free(fdt_size, fdt_addr);
+2 −2
Original line number Diff line number Diff line
@@ -49,11 +49,11 @@ extern const efi_system_table_t *efi_system_table;
#define efi_call_proto(inst, func, ...) inst->func(inst, ##__VA_ARGS__)
#endif

#define pr_efi(msg)		do {			\
#define efi_info(msg)		do {			\
	if (!efi_quiet) efi_printk("EFI stub: "msg);	\
} while (0)

#define pr_efi_err(msg) efi_printk("EFI stub: ERROR: "msg)
#define efi_err(msg) efi_printk("EFI stub: ERROR: "msg)

/* Helper macros for the usual case of using simple C variables: */
#ifndef fdt_setprop_inplace_var
+8 −8
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ static efi_status_t update_fdt(void *orig_fdt, unsigned long orig_fdt_size,
	/* Do some checks on provided FDT, if it exists: */
	if (orig_fdt) {
		if (fdt_check_header(orig_fdt)) {
			pr_efi_err("Device Tree header not valid!\n");
			efi_err("Device Tree header not valid!\n");
			return EFI_LOAD_ERROR;
		}
		/*
@@ -47,7 +47,7 @@ static efi_status_t update_fdt(void *orig_fdt, unsigned long orig_fdt_size,
		 * configuration table:
		 */
		if (orig_fdt_size && fdt_totalsize(orig_fdt) > orig_fdt_size) {
			pr_efi_err("Truncated device tree! foo!\n");
			efi_err("Truncated device tree! foo!\n");
			return EFI_LOAD_ERROR;
		}
	}
@@ -270,16 +270,16 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle,
	 */
	status = efi_get_memory_map(&map);
	if (status != EFI_SUCCESS) {
		pr_efi_err("Unable to retrieve UEFI memory map.\n");
		efi_err("Unable to retrieve UEFI memory map.\n");
		return status;
	}

	pr_efi("Exiting boot services and installing virtual address map...\n");
	efi_info("Exiting boot services and installing virtual address map...\n");

	map.map = &memory_map;
	status = efi_allocate_pages(MAX_FDT_SIZE, new_fdt_addr, max_addr);
	if (status != EFI_SUCCESS) {
		pr_efi_err("Unable to allocate memory for new device tree.\n");
		efi_err("Unable to allocate memory for new device tree.\n");
		goto fail;
	}

@@ -296,7 +296,7 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle,
			    initrd_addr, initrd_size);

	if (status != EFI_SUCCESS) {
		pr_efi_err("Unable to construct new device tree.\n");
		efi_err("Unable to construct new device tree.\n");
		goto fail_free_new_fdt;
	}

@@ -342,7 +342,7 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle,
		return EFI_SUCCESS;
	}

	pr_efi_err("Exit boot services failed.\n");
	efi_err("Exit boot services failed.\n");

fail_free_new_fdt:
	efi_free(MAX_FDT_SIZE, *new_fdt_addr);
@@ -363,7 +363,7 @@ void *get_fdt(unsigned long *fdt_size)
		return NULL;

	if (fdt_check_header(fdt) != 0) {
		pr_efi_err("Invalid header detected on UEFI supplied FDT, ignoring ...\n");
		efi_err("Invalid header detected on UEFI supplied FDT, ignoring ...\n");
		return NULL;
	}
	*fdt_size = fdt_totalsize(fdt);
Loading