diff --git a/lib/efi_selftest/efi_selftest_snp.c b/lib/efi_selftest/efi_selftest_snp.c index 09bd53da82..e10a34ba64 100644 --- a/lib/efi_selftest/efi_selftest_snp.c +++ b/lib/efi_selftest/efi_selftest_snp.c @@ -103,7 +103,7 @@ static efi_status_t send_dhcp_discover(void) struct dhcp p = {}; /* - * Fill ethernet header + * Fill Ethernet header */ boottime->copy_mem(p.eth_hdr.et_dest, (void *)BROADCAST_MAC, ARP_HLEN); boottime->copy_mem(p.eth_hdr.et_src, &net->mode->current_address, @@ -228,6 +228,14 @@ static int setup(const efi_handle_t handle, efi_st_error("WaitForPacket event missing\n"); return EFI_ST_FAILURE; } + /* + * Start network adapter. + */ + ret = net->start(net); + if (ret != EFI_SUCCESS && ret != EFI_ALREADY_STARTED) { + efi_st_error("Failed to start network adapter\n"); + return EFI_ST_FAILURE; + } /* * Initialize network adapter. */ @@ -236,14 +244,6 @@ static int setup(const efi_handle_t handle, efi_st_error("Failed to initialize network adapter\n"); return EFI_ST_FAILURE; } - /* - * Start network adapter. - */ - ret = net->start(net); - if (ret != EFI_SUCCESS) { - efi_st_error("Failed to start network adapter\n"); - return EFI_ST_FAILURE; - } return EFI_ST_SUCCESS; }