efi: libstub: remove pointless goto kludge
authorArd Biesheuvel <ardb@kernel.org>
Sun, 18 Sep 2022 18:02:44 +0000 (20:02 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Mon, 26 Sep 2022 20:30:18 +0000 (22:30 +0200)
Remove some goto cruft that serves no purpose and obfuscates the code.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/libstub/efi-stub-helper.c

index 85c68aa..63f3c2c 100644 (file)
@@ -438,13 +438,14 @@ efi_status_t efi_exit_boot_services(void *handle, void *priv,
        efi_status_t status;
 
        status = efi_get_memory_map(&map);
-
        if (status != EFI_SUCCESS)
-               goto fail;
+               return status;
 
        status = priv_func(map, priv);
-       if (status != EFI_SUCCESS)
-               goto free_map;
+       if (status != EFI_SUCCESS) {
+               efi_bs_call(free_pool, map);
+               return status;
+       }
 
        if (efi_disable_pci_dma)
                efi_pci_disable_bridge_busmaster();
@@ -475,25 +476,16 @@ efi_status_t efi_exit_boot_services(void *handle, void *priv,
 
                /* exit_boot_services() was called, thus cannot free */
                if (status != EFI_SUCCESS)
-                       goto fail;
+                       return status;
 
                status = priv_func(map, priv);
                /* exit_boot_services() was called, thus cannot free */
                if (status != EFI_SUCCESS)
-                       goto fail;
+                       return status;
 
                status = efi_bs_call(exit_boot_services, handle, map->map_key);
        }
 
-       /* exit_boot_services() was called, thus cannot free */
-       if (status != EFI_SUCCESS)
-               goto fail;
-
-       return EFI_SUCCESS;
-
-free_map:
-       efi_bs_call(free_pool, map);
-fail:
        return status;
 }