Skip to content

Commit

Permalink
efi: libstub: remove pointless goto kludge
Browse files Browse the repository at this point in the history
Remove some goto cruft that serves no purpose and obfuscates the code.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
  • Loading branch information
Ard Biesheuvel committed Sep 26, 2022
1 parent eab3126 commit a12b78b
Showing 1 changed file with 7 additions and 15 deletions.
22 changes: 7 additions & 15 deletions drivers/firmware/efi/libstub/efi-stub-helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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;
}

Expand Down

0 comments on commit a12b78b

Please sign in to comment.