Commit 99ea8b1d authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Ingo Molnar
Browse files

efi/libstub: Drop 'table' argument from efi_table_attr() macro



None of the definitions of the efi_table_attr() still refer to
their 'table' argument so let's get rid of it entirely.

Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
Cc: Arvind Sankar <nivedita@alum.mit.edu>
Cc: Borislav Petkov <bp@alien8.de>
Cc: James Morse <james.morse@arm.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: https://lkml.kernel.org/r/20191224151025.32482-23-ardb@kernel.org


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 47c0fd39
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -54,8 +54,7 @@ void efi_virtmap_unload(void);
#define efi_call_runtime(f, ...)	efi_system_table()->runtime->f(__VA_ARGS__)
#define efi_is_native()			(true)

#define efi_table_attr(table, attr, instance)				\
	instance->attr
#define efi_table_attr(inst, attr)	(inst->attr)

#define efi_call_proto(inst, func, ...) inst->func(inst, ##__VA_ARGS__)

+1 −2
Original line number Diff line number Diff line
@@ -97,8 +97,7 @@ static inline unsigned long efi_get_max_initrd_addr(unsigned long dram_base,
#define efi_call_runtime(f, ...)	efi_system_table()->runtime->f(__VA_ARGS__)
#define efi_is_native()			(true)

#define efi_table_attr(table, attr, instance)				\
	instance->attr
#define efi_table_attr(inst, attr)	(inst->attr)

#define efi_call_proto(inst, func, ...) inst->func(inst, ##__VA_ARGS__)

+4 −4
Original line number Diff line number Diff line
@@ -47,8 +47,8 @@ preserve_pci_rom_image(efi_pci_io_protocol_t *pci, struct pci_setup_rom **__rom)
	 * large romsize. The UEFI spec limits the size of option ROMs to 16
	 * MiB so we reject any ROMs over 16 MiB in size to catch this.
	 */
	romimage = efi_table_attr(efi_pci_io_protocol, romimage, pci);
	romsize = efi_table_attr(efi_pci_io_protocol, romsize, pci);
	romimage = efi_table_attr(pci, romimage);
	romsize = efi_table_attr(pci, romsize);
	if (!romimage || !romsize || romsize > SZ_16M)
		return EFI_INVALID_PARAMETER;

@@ -183,7 +183,7 @@ static void retrieve_apple_device_properties(struct boot_params *boot_params)
	if (status != EFI_SUCCESS)
		return;

	if (efi_table_attr(apple_properties_protocol, version, p) != 0x10000) {
	if (efi_table_attr(p, version) != 0x10000) {
		efi_printk("Unsupported properties proto version\n");
		return;
	}
@@ -226,7 +226,7 @@ static const efi_char16_t apple[] = L"Apple";
static void setup_quirks(struct boot_params *boot_params)
{
	efi_char16_t *fw_vendor = (efi_char16_t *)(unsigned long)
		efi_table_attr(efi_system_table, fw_vendor, sys_table);
		efi_table_attr(efi_system_table(), fw_vendor);

	if (!memcmp(fw_vendor, apple, sizeof(apple))) {
		if (IS_ENABLED(CONFIG_APPLE_PROPERTIES))
+9 −16
Original line number Diff line number Diff line
@@ -216,16 +216,11 @@ static inline bool efi_is_native(void)
		__builtin_types_compatible_p(u32, __typeof__(attr)),	\
			(unsigned long)(attr), (attr))

#define efi_table_attr(table, attr, instance) ({			\
	__typeof__(instance->attr) __ret;				\
	if (efi_is_native()) {						\
		__ret = instance->attr;					\
	} else {							\
		__ret = (__typeof__(__ret))				\
			efi_mixed_mode_cast(instance->mixed_mode.attr);	\
	}								\
	__ret;								\
})
#define efi_table_attr(inst, attr)					\
	(efi_is_native()						\
		? inst->attr						\
		: (__typeof__(inst->attr))				\
			efi_mixed_mode_cast(inst->mixed_mode.attr))

#define efi_call_proto(inst, func, ...)					\
	(efi_is_native()						\
@@ -235,16 +230,14 @@ static inline bool efi_is_native(void)
#define efi_call_early(f, ...)						\
	(efi_is_native()						\
		? efi_system_table()->boottime->f(__VA_ARGS__)		\
		: efi64_thunk(efi_table_attr(efi_boot_services,		\
			boottime, efi_system_table())->mixed_mode.f,	\
			__VA_ARGS__))
		: efi64_thunk(efi_table_attr(efi_system_table(),	\
				boottime)->mixed_mode.f, __VA_ARGS__))

#define efi_call_runtime(f, ...)					\
	(efi_is_native()						\
		? efi_system_table()->runtime->f(__VA_ARGS__)		\
		: efi64_thunk(efi_table_attr(efi_runtime_services,	\
			runtime, efi_system_table())->mixed_mode.f,	\
			__VA_ARGS__))
		: efi64_thunk(efi_table_attr(efi_system_table(),	\
				runtime)->mixed_mode.f, __VA_ARGS__))

extern bool efi_reboot_required(void);
extern bool efi_is_table_address(unsigned long phys_addr);
+4 −7
Original line number Diff line number Diff line
@@ -933,17 +933,15 @@ fail:

void *get_efi_config_table(efi_guid_t guid)
{
	unsigned long tables = efi_table_attr(efi_system_table, tables,
					      efi_system_table());
	int nr_tables = efi_table_attr(efi_system_table, nr_tables,
				       efi_system_table());
	unsigned long tables = efi_table_attr(efi_system_table(), tables);
	int nr_tables = efi_table_attr(efi_system_table(), nr_tables);
	int i;

	for (i = 0; i < nr_tables; i++) {
		efi_config_table_t *t = (void *)tables;

		if (efi_guidcmp(t->guid, guid) == 0)
			return efi_table_attr(efi_config_table, table, t);
			return efi_table_attr(t, table);

		tables += efi_is_native() ? sizeof(efi_config_table_t)
					  : sizeof(efi_config_table_32_t);
@@ -953,7 +951,6 @@ void *get_efi_config_table(efi_guid_t guid)

void efi_char16_printk(efi_char16_t *str)
{
	efi_call_proto(efi_table_attr(efi_system_table, con_out,
				      efi_system_table()),
	efi_call_proto(efi_table_attr(efi_system_table(), con_out),
		       output_string, str);
}
Loading