On Tue, 27 Jun 2023 at 21:19, Glenn Washburn
<[email protected]> wrote:
>
> EFI status codes are of different classes depending on the first byte and
> all error status codes defined in appendix D of the main spec start from 1
> and have the high bit set. When printing as a uint, the decimal is a very
> large number that needs have the high bit cleared get the spec error code.
> This can be easily visually done by a human if the number is printed as hex.
>
> Signed-off-by: Glenn Washburn <[email protected]>
> ---
>  grub-core/loader/efi/linux.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c
> index c1eef7c9865f..ca6f60519d73 100644
> --- a/grub-core/loader/efi/linux.c
> +++ b/grub-core/loader/efi/linux.c
> @@ -234,7 +234,7 @@ grub_arch_efi_linux_boot_image (grub_addr_t addr, 
> grub_size_t size, char *args)
>    status = b->start_image (image_handle, 0, NULL);
>
>    /* When successful, not reached */
> -  grub_error (GRUB_ERR_BAD_OS, "start_image() returned %" 
> PRIuGRUB_EFI_UINTN_T, status);
> +  grub_error (GRUB_ERR_BAD_OS, "start_image() returned %" 
> PRIxGRUB_EFI_UINTN_T, status);

Maybe add the 0x prefix to the format string as well?

>    grub_efi_free_pages ((grub_addr_t) loaded_image->load_options,
>                        GRUB_EFI_BYTES_TO_PAGES 
> (loaded_image->load_options_size));
>  unload:
> --
> 2.34.1
>

_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to