efi_loader: efi_net: use efi_add_protocol

Use efi_add_protocol to add protocols.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
master
Heinrich Schuchardt 7 years ago committed by Alexander Graf
parent 4b9f7aaf7c
commit 84d14568ca
  1. 34
      lib/efi_loader/efi_net.c

@ -292,20 +292,26 @@ int efi_net_register(void)
/* We only expose the "active" eth device, so one is enough */
netobj = calloc(1, sizeof(*netobj));
if (!netobj) {
printf("ERROR: Out of memory\n");
return 1;
}
if (!netobj)
goto out_of_memory;
/* Hook net up to the device list */
list_add_tail(&netobj->parent.link, &efi_obj_list);
/* Fill in object data */
netobj->parent.protocols[0].guid = &efi_net_guid;
netobj->parent.protocols[0].protocol_interface = &netobj->net;
netobj->parent.protocols[1].guid = &efi_guid_device_path;
netobj->parent.protocols[1].protocol_interface =
efi_dp_from_eth();
netobj->parent.protocols[2].guid = &efi_pxe_guid;
netobj->parent.protocols[2].protocol_interface = &netobj->pxe;
netobj->parent.handle = &netobj->net;
r = efi_add_protocol(netobj->parent.handle, &efi_net_guid,
&netobj->net);
if (r != EFI_SUCCESS)
goto out_of_memory;
r = efi_add_protocol(netobj->parent.handle, &efi_guid_device_path,
efi_dp_from_eth());
if (r != EFI_SUCCESS)
goto out_of_memory;
r = efi_add_protocol(netobj->parent.handle, &efi_pxe_guid,
&netobj->pxe);
if (r != EFI_SUCCESS)
goto out_of_memory;
netobj->net.revision = EFI_SIMPLE_NETWORK_PROTOCOL_REVISION;
netobj->net.start = efi_net_start;
netobj->net.stop = efi_net_stop;
@ -330,9 +336,6 @@ int efi_net_register(void)
if (dhcp_ack)
netobj->pxe_mode.dhcp_ack = *dhcp_ack;
/* Hook net up to the device list */
list_add_tail(&netobj->parent.link, &efi_obj_list);
/*
* Create WaitForPacket event.
*/
@ -365,4 +368,7 @@ int efi_net_register(void)
}
return 0;
out_of_memory:
printf("ERROR: Out of memory\n");
return 1;
}

Loading…
Cancel
Save