summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <xypron.glpk@gmx.de>2019-06-01 20:15:10 +0200
committerHeinrich Schuchardt <xypron.glpk@gmx.de>2019-06-01 22:40:23 +0200
commitb4863baa68dd589092a9823f8c0bc513c24dc3a3 (patch)
treeaa53fbe133b617394ebb8793bbca8393e84b5662
parent755d42d4209eda07836b256730e8686c37b18939 (diff)
efi_loader: open protocol information
When a protocol is opened the open protocol information must be updated. The key fields of the open protocol information records are ImageHandle, ControllerHandle, and Attributes. Consider the Attributes field when determining if an open protocol information record has to be updated or a new one has to be created. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
-rw-r--r--lib/efi_loader/efi_boottime.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index 481f9b9d3e..1a0e09807a 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -2684,7 +2684,8 @@ disconnect_next:
/* Find existing entry */
list_for_each_entry(item, &handler->open_infos, link) {
if (item->info.agent_handle == agent_handle &&
- item->info.controller_handle == controller_handle)
+ item->info.controller_handle == controller_handle &&
+ item->info.attributes == attributes)
match = &item->info;
}
/* None found, create one */