Skip to content

[Bug]: EFI_BOOT_SERVICES.LocateHandle() SearchType ByRegisterNotify is missing handles prior to registration #1251

@rogurr

Description

@rogurr

Is there an existing issue for this?

  • I have searched existing issues

Current Behavior

Registering a callback then using LocateHandle with the search type ByRegisterNotify will result in the callbacks not having access to any of the handles that were present in the core prior to the registration event.

Expected Behavior

EDK II code will return handles to any protocol installed prior to performing the LocateHandle calls.

Steps To Reproduce

Example:

  1. Protocol 1234 is added to core
  2. Register for a callback on 1234 with search key so ByRegisterNotify will properly index returned value
  3. In callback, LocateHandle with search key will report no protocols available
  4. Add Protocol 1234 again
  5. In callback, LocateHandle with search key will return just one handle, the second addition of 1234

Running the same experiment on EDK II code will result in step 3 returning a handle to the first installation of protocol 1234.

Build Environment

N/A

Version Information

19.03

Urgency

Medium

Are you going to fix this?

I will fix it

Do you need maintainer feedback?

No maintainer feedback needed

Anything else?

I have a fix already and a PR will be added today.

Metadata

Metadata

Assignees

Labels

state:needs-triageNeeds to triaged to determine next stepstype:bugSomething isn't workingurgency:mediumImportant with a moderate impact

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions