
From: Jan Kiszka jan.kiszka@siemens.com
CONFIG_NET does not imply that there are actually network devices available. Neither does CONFIG_NETDEVICES, but it is much closer, and changing to this dependency obsoletes the check in Kconfig because it means DM_ETH.
Along this change, make sure that efi_net_set_dhcp_ack is always defined, at least as stub.
Suggested-by: Tom Rini trini@konsulko.com Signed-off-by: Jan Kiszka jan.kiszka@siemens.com --- include/efi_loader.h | 10 +++++++--- lib/efi_loader/Kconfig | 1 - lib/efi_loader/Makefile | 2 +- lib/efi_loader/efi_device_path.c | 8 +++----- lib/efi_loader/efi_setup.c | 10 +++++----- lib/efi_selftest/Makefile | 2 +- 6 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/include/efi_loader.h b/include/efi_loader.h index 0c6c95ba464..43816491a23 100644 --- a/include/efi_loader.h +++ b/include/efi_loader.h @@ -94,8 +94,6 @@ void efi_restore_gd(void); /* Call this to set the current device name */ void efi_set_bootdev(const char *dev, const char *devnr, const char *path, void *buffer, size_t buffer_size); -/* Called by networking code to memorize the dhcp ack package */ -void efi_net_set_dhcp_ack(void *pkt, int len); /* Print information about all loaded images */ void efi_print_image_infos(void *pc);
@@ -118,7 +116,6 @@ static inline void efi_restore_gd(void) { } static inline void efi_set_bootdev(const char *dev, const char *devnr, const char *path, void *buffer, size_t buffer_size) { } -static inline void efi_net_set_dhcp_ack(void *pkt, int len) { } static inline void efi_print_image_infos(void *pc) { } static inline efi_status_t efi_launch_capsules(void) { @@ -127,6 +124,13 @@ static inline efi_status_t efi_launch_capsules(void)
#endif /* CONFIG_IS_ENABLED(EFI_LOADER) */
+#if CONFIG_IS_ENABLED(EFI_LOADER) && CONFIG_IS_ENABLED(NETDEVICES) +/* Called by networking code to memorize the dhcp ack package */ +void efi_net_set_dhcp_ack(void *pkt, int len); +#else +static inline void efi_net_set_dhcp_ack(void *pkt, int len) { } +#endif + /* Maximum number of configuration tables */ #define EFI_MAX_CONFIGURATION_TABLES 16
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig index 41756ea5396..68e6c2531e1 100644 --- a/lib/efi_loader/Kconfig +++ b/lib/efi_loader/Kconfig @@ -11,7 +11,6 @@ config EFI_LOADER # We need EFI_STUB_32BIT to be set on x86_32 with EFI_STUB depends on !EFI_STUB || !X86 || X86_64 || EFI_STUB_32BIT depends on BLK - depends on DM_ETH || !NET depends on !EFI_APP default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8 select CHARSET diff --git a/lib/efi_loader/Makefile b/lib/efi_loader/Makefile index f8e8afe1284..8738757dd2c 100644 --- a/lib/efi_loader/Makefile +++ b/lib/efi_loader/Makefile @@ -68,7 +68,7 @@ obj-y += efi_watchdog.o obj-$(CONFIG_EFI_ESRT) += efi_esrt.o obj-$(CONFIG_VIDEO) += efi_gop.o obj-$(CONFIG_BLK) += efi_disk.o -obj-$(CONFIG_NET) += efi_net.o +obj-$(CONFIG_NETDEVICES) += efi_net.o obj-$(CONFIG_GENERATE_ACPI_TABLE) += efi_acpi.o obj-$(CONFIG_GENERATE_SMBIOS_TABLE) += efi_smbios.o obj-$(CONFIG_EFI_RNG_PROTOCOL) += efi_rng.o diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c index acae007f26f..171ee2b4679 100644 --- a/lib/efi_loader/efi_device_path.c +++ b/lib/efi_loader/efi_device_path.c @@ -613,7 +613,7 @@ __maybe_unused static void *dp_fill(void *buf, struct udevice *dev) *vdp = ROOT; return &vdp[1]; } -#ifdef CONFIG_NET +#ifdef CONFIG_NETDEVICES case UCLASS_ETH: { struct efi_device_path_mac_addr *dp = dp_fill(buf, dev->parent); @@ -1052,7 +1052,7 @@ struct efi_device_path *efi_dp_from_uart(void) return buf; }
-#ifdef CONFIG_NET +#ifdef CONFIG_NETDEVICES struct efi_device_path *efi_dp_from_eth(void) { void *buf, *start; @@ -1169,10 +1169,8 @@ efi_status_t efi_dp_from_name(const char *dev, const char *devnr, return EFI_INVALID_PARAMETER;
if (!strcmp(dev, "Net")) { -#ifdef CONFIG_NET - if (device) + if (CONFIG_IS_ENABLED(NETDEVICES) && device) *device = efi_dp_from_eth(); -#endif } else if (!strcmp(dev, "Uart")) { if (device) *device = efi_dp_from_uart(); diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c index a340bc38806..cec799d93e2 100644 --- a/lib/efi_loader/efi_setup.c +++ b/lib/efi_loader/efi_setup.c @@ -331,11 +331,11 @@ efi_status_t efi_init_obj_list(void) if (ret != EFI_SUCCESS) goto out; } -#ifdef CONFIG_NET - ret = efi_net_register(); - if (ret != EFI_SUCCESS) - goto out; -#endif + if (IS_ENABLED(CONFIG_NETDEVICES)) { + ret = efi_net_register(); + if (ret != EFI_SUCCESS) + goto out; + } #ifdef CONFIG_GENERATE_ACPI_TABLE ret = efi_acpi_register(); if (ret != EFI_SUCCESS) diff --git a/lib/efi_selftest/Makefile b/lib/efi_selftest/Makefile index daac6c39682..e4d75420bff 100644 --- a/lib/efi_selftest/Makefile +++ b/lib/efi_selftest/Makefile @@ -50,7 +50,7 @@ efi_selftest_variables_runtime.o \ efi_selftest_watchdog.o
obj-$(CONFIG_EFI_ECPT) += efi_selftest_ecpt.o -obj-$(CONFIG_NET) += efi_selftest_snp.o +obj-$(CONFIG_NETDEVICES) += efi_selftest_snp.o
obj-$(CONFIG_EFI_DEVICE_PATH_TO_TEXT) += efi_selftest_devicepath.o obj-$(CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2) += \