[U-Boot] [PATCH v2 08/18] efi_loader: efi_net: use efi_add_protocol

2017-11-12 Thread Heinrich Schuchardt
Use efi_add_protocol to add protocols.

Signed-off-by: Heinrich Schuchardt 
---
v2
no change
---
 lib/efi_loader/efi_net.c | 34 --
 1 file changed, 20 insertions(+), 14 deletions(-)

diff --git a/lib/efi_loader/efi_net.c b/lib/efi_loader/efi_net.c
index a7b101e830..8b2f682351 100644
--- a/lib/efi_loader/efi_net.c
+++ b/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;
 }
-- 
2.15.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v2 08/18] efi_loader: efi_net: use efi_add_protocol

2017-11-17 Thread Simon Glass
On 12 November 2017 at 07:02, Heinrich Schuchardt  wrote:
> Use efi_add_protocol to add protocols.
>
> Signed-off-by: Heinrich Schuchardt 
> ---
> v2
> no change
> ---
>  lib/efi_loader/efi_net.c | 34 --
>  1 file changed, 20 insertions(+), 14 deletions(-)

Reviewed-by: Simon Glass 

Same question about missing error-checking.
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot