efi_loader: return efi_status_t from efi_net_register
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Sat, 3 Mar 2018 14:28:56 +0000 (15:28 +0100)
committerAlexander Graf <agraf@suse.de>
Wed, 4 Apr 2018 09:00:06 +0000 (11:00 +0200)
Consistently return status codes form efi_net_register().

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
include/efi_loader.h
lib/efi_loader/efi_net.c

index a28a7a1764dc7dafff947baec16571d53466faae..d2fadc5c731995ff23e5dacb18f584ce29905be6 100644 (file)
@@ -185,7 +185,7 @@ int efi_disk_create_partitions(efi_handle_t parent, struct blk_desc *desc,
 /* Called by bootefi to make GOP (graphical) interface available */
 efi_status_t efi_gop_register(void);
 /* Called by bootefi to make the network interface available */
-int efi_net_register(void);
+efi_status_t efi_net_register(void);
 /* Called by bootefi to make the watchdog available */
 int efi_watchdog_register(void);
 /* Called by bootefi to make SMBIOS tables available */
index 8c5d5b492cab03df847ea6a443c3919cbe592a5b..e7fed79450205343e6af80c4e5fe7b33d77a6774 100644 (file)
@@ -280,20 +280,22 @@ static void EFIAPI efi_network_timer_notify(struct efi_event *event,
 }
 
 /* This gets called from do_bootefi_exec(). */
-int efi_net_register(void)
+efi_status_t efi_net_register(void)
 {
        struct efi_net_obj *netobj;
        efi_status_t r;
 
        if (!eth_get_dev()) {
                /* No eth device active, don't expose any */
-               return 0;
+               return EFI_SUCCESS;
        }
 
        /* We only expose the "active" eth device, so one is enough */
        netobj = calloc(1, sizeof(*netobj));
-       if (!netobj)
-               goto out_of_memory;
+       if (!netobj) {
+               printf("ERROR: Out of memory\n");
+               return EFI_OUT_OF_RESOURCES;
+       }
 
        /* Hook net up to the device list */
        efi_add_handle(&netobj->parent);
@@ -302,15 +304,15 @@ int efi_net_register(void)
        r = efi_add_protocol(netobj->parent.handle, &efi_net_guid,
                             &netobj->net);
        if (r != EFI_SUCCESS)
-               goto out_of_memory;
+               goto failure_to_add_protocol;
        r = efi_add_protocol(netobj->parent.handle, &efi_guid_device_path,
                             efi_dp_from_eth());
        if (r != EFI_SUCCESS)
-               goto out_of_memory;
+               goto failure_to_add_protocol;
        r = efi_add_protocol(netobj->parent.handle, &efi_pxe_guid,
                             &netobj->pxe);
        if (r != EFI_SUCCESS)
-               goto out_of_memory;
+               goto failure_to_add_protocol;
        netobj->net.revision = EFI_SIMPLE_NETWORK_PROTOCOL_REVISION;
        netobj->net.start = efi_net_start;
        netobj->net.stop = efi_net_stop;
@@ -366,8 +368,8 @@ int efi_net_register(void)
                return r;
        }
 
-       return 0;
-out_of_memory:
-       printf("ERROR: Out of memory\n");
-       return 1;
+       return EFI_SUCCESS;
+failure_to_add_protocol:
+       printf("ERROR: Failure to add protocol\n");
+       return r;
 }