[U-Boot] [PATCH] efi_loader: initialise partition_signature memory

Rob Clark robdclark at gmail.com
Thu Nov 30 14:24:36 UTC 2017


On Tue, Nov 21, 2017 at 7:24 AM, Jonathan Gray <jsg at jsg.id.au> wrote:
> Zero partition_signature in the efi_device_path_hard_drive_path
> structure when signature_type is zero.
>
> This is required so that efi_dp_match() will work as expected
> when doing memcmp() comparisons.
>
> Corrects a problem where the loaded image protocol would not return a
> device path with MEDIA_DEVICE causing the OpenBSD bootloader to fail
> on rpi_3 and other targets.
>
> Signed-off-by: Jonathan Gray <jsg at jsg.id.au>

Reviewed-by: Rob Clark <robdclark at gmail.com>

> ---
>  lib/efi_loader/efi_device_path.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c
> index f6e368e029..8045532a29 100644
> --- a/lib/efi_loader/efi_device_path.c
> +++ b/lib/efi_loader/efi_device_path.c
> @@ -431,6 +431,9 @@ static void *dp_part_fill(void *buf, struct blk_desc *desc, int part)
>                 if (hddp->signature_type != 0)
>                         memcpy(hddp->partition_signature, &desc->guid_sig,
>                                sizeof(hddp->partition_signature));
> +               else
> +                       memset(hddp->partition_signature, 0,
> +                              sizeof(hddp->partition_signature));
>
>                 buf = &hddp[1];
>         }
> --
> 2.15.0
>


More information about the U-Boot mailing list