[PATCH master 09/39] efi: loader: fix missing field init in deferred protocol add

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Feb 16 00:44:09 PST 2026


efi_add_root_node_protocol_deferred() allocates a deferred context
but never stores the protocol and interface pointers in it. When
the deferred callback fires, it calls efi_add_protocol with zero
protocol GUID and NULL interface.

Co-Authored-By: Claude Opus 4.6 <noreply at anthropic.com>
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 efi/loader/setup.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/efi/loader/setup.c b/efi/loader/setup.c
index a24d3044afdc..e27929aaeae9 100644
--- a/efi/loader/setup.c
+++ b/efi/loader/setup.c
@@ -117,6 +117,8 @@ void efi_add_root_node_protocol_deferred(const efi_guid_t *protocol, const void
 
 	deferred->base.cb = add_protocol;
 	deferred->base.data = &deferred->ctx;
+	deferred->ctx.protocol = protocol;
+	deferred->ctx.interface = interface;
 
 	list_add_tail(&deferred->base.list, &efi_deferred_cbs);
 }
-- 
2.47.3




More information about the barebox mailing list