[U-Boot] [PATCH] efi_loader: workaround for grub lsefi bug

Patch has also been sent to fix grub to not ignore the error returned and treat protocol_buffer_count as valid. But that that might take a while to trickle into distro's, so this workaround might be useful.
Signed-off-by: Rob Clark robdclark@gmail.com --- lib/efi_loader/efi_boottime.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index 27e51a253f..a45de39919 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -637,6 +637,7 @@ static efi_status_t EFIAPI efi_protocols_per_handle(void *handle, { EFI_ENTRY("%p, %p, %p", handle, protocol_buffer, protocol_buffer_count); + *protocol_buffer_count = 0; return EFI_EXIT(EFI_OUT_OF_RESOURCES); }

On 07/20/2017 01:59 PM, Rob Clark wrote:
Patch has also been sent to fix grub to not ignore the error returned and treat protocol_buffer_count as valid. But that that might take a while to trickle into distro's, so this workaround might be useful.
Signed-off-by: Rob Clark robdclark@gmail.com
lib/efi_loader/efi_boottime.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index 27e51a253f..a45de39919 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -637,6 +637,7 @@ static efi_status_t EFIAPI efi_protocols_per_handle(void *handle, { EFI_ENTRY("%p, %p, %p", handle, protocol_buffer, protocol_buffer_count);
- *protocol_buffer_count = 0; return EFI_EXIT(EFI_OUT_OF_RESOURCES);
}
NAK
We already have this patch waiting to correctly implement ProtocolsPerHandle:
efi_loader: implement ProtocolsPerHandle https://patchwork.ozlabs.org/patch/787995/
@Rob: Could you, please, test if this patch solves your problem.
Regards
Heinrich

On Mon, Jul 24, 2017 at 2:31 PM, Heinrich Schuchardt xypron.glpk@gmx.de wrote:
On 07/20/2017 01:59 PM, Rob Clark wrote:
Patch has also been sent to fix grub to not ignore the error returned and treat protocol_buffer_count as valid. But that that might take a while to trickle into distro's, so this workaround might be useful.
Signed-off-by: Rob Clark robdclark@gmail.com
lib/efi_loader/efi_boottime.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index 27e51a253f..a45de39919 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -637,6 +637,7 @@ static efi_status_t EFIAPI efi_protocols_per_handle(void *handle, { EFI_ENTRY("%p, %p, %p", handle, protocol_buffer, protocol_buffer_count);
*protocol_buffer_count = 0; return EFI_EXIT(EFI_OUT_OF_RESOURCES);
}
NAK
We already have this patch waiting to correctly implement ProtocolsPerHandle:
efi_loader: implement ProtocolsPerHandle https://patchwork.ozlabs.org/patch/787995/
@Rob: Could you, please, test if this patch solves your problem.
From a quick look, it looks like it probably should. I mostly sent
this patch so people would have a way to lsefi in grub to see what my device-path patches where doing.
BR, -R

On 24.07.17 21:20, Rob Clark wrote:
On Mon, Jul 24, 2017 at 2:31 PM, Heinrich Schuchardt xypron.glpk@gmx.de wrote:
On 07/20/2017 01:59 PM, Rob Clark wrote:
Patch has also been sent to fix grub to not ignore the error returned and treat protocol_buffer_count as valid. But that that might take a while to trickle into distro's, so this workaround might be useful.
Signed-off-by: Rob Clark robdclark@gmail.com
lib/efi_loader/efi_boottime.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c index 27e51a253f..a45de39919 100644 --- a/lib/efi_loader/efi_boottime.c +++ b/lib/efi_loader/efi_boottime.c @@ -637,6 +637,7 @@ static efi_status_t EFIAPI efi_protocols_per_handle(void *handle, { EFI_ENTRY("%p, %p, %p", handle, protocol_buffer, protocol_buffer_count);
}*protocol_buffer_count = 0; return EFI_EXIT(EFI_OUT_OF_RESOURCES);
NAK
We already have this patch waiting to correctly implement ProtocolsPerHandle:
efi_loader: implement ProtocolsPerHandle https://patchwork.ozlabs.org/patch/787995/
@Rob: Could you, please, test if this patch solves your problem.
From a quick look, it looks like it probably should. I mostly sent
Yes, lsefi works with your patch.
this patch so people would have a way to lsefi in grub to see what my device-path patches where doing.
I simply applied both now :).
Alex

Patch has also been sent to fix grub to not ignore the error returned and treat protocol_buffer_count as valid. But that that might take a while to trickle into distro's, so this workaround might be useful.
Signed-off-by: Rob Clark robdclark@gmail.com
Thanks, applied to efi-next
Alex
participants (3)
-
Alexander Graf
-
Heinrich Schuchardt
-
Rob Clark