diff options
author | Laszlo Ersek <lersek@redhat.com> | 2019-09-13 21:06:19 +0200 |
---|---|---|
committer | Laszlo Ersek <lersek@redhat.com> | 2019-10-09 09:40:10 +0200 |
commit | 976d0353a6ce48149039849b52bb67527be5b580 (patch) | |
tree | a4bbc1b5510bf928b5779b952fba775e1d11f315 /UefiPayloadPkg/BlSupportDxe | |
parent | 04a0c3e8e1384fc054243b61712a4bd6e454e7df (diff) | |
download | edk2-976d0353a6ce48149039849b52bb67527be5b580.zip edk2-976d0353a6ce48149039849b52bb67527be5b580.tar.gz edk2-976d0353a6ce48149039849b52bb67527be5b580.tar.bz2 |
UefiPayloadPkg/BlSupportDxe: fix ReserveResourceInGcd() calls
The last parameter of ReserveResourceInGcd() is "ImageHandle", forwarded
in turn to gDS->AllocateMemorySpace() or gDS->AllocateIoSpace() as "owner"
image handle.
But BlDxeEntryPoint() passes "SystemTable" as "ImageHandle".
Compilers have not flagged it because EFI_HANDLE (the type of
"ImageHandle") is unfortunately specified as (VOID*), and
(EFI_SYSTEM_TABLE*) converts to (VOID*) silently.
Hand the entry point function's "ImageHandle" parameter to
ReserveResourceInGcd(). This fixes an actual bug.
Cc: Benjamin You <benjamin.you@intel.com>
Cc: Guo Dong <guo.dong@intel.com>
Cc: Maurice Ma <maurice.ma@intel.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Guo Dong <guo.dong@intel.com>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
Diffstat (limited to 'UefiPayloadPkg/BlSupportDxe')
-rw-r--r-- | UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c index bcee4cd..28dfc8f 100644 --- a/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c +++ b/UefiPayloadPkg/BlSupportDxe/BlSupportDxe.c @@ -106,10 +106,10 @@ BlDxeEntryPoint ( //
// Report MMIO/IO Resources
//
- Status = ReserveResourceInGcd (TRUE, EfiGcdMemoryTypeMemoryMappedIo, 0xFEC00000, SIZE_4KB, 0, SystemTable); // IOAPIC
+ Status = ReserveResourceInGcd (TRUE, EfiGcdMemoryTypeMemoryMappedIo, 0xFEC00000, SIZE_4KB, 0, ImageHandle); // IOAPIC
ASSERT_EFI_ERROR (Status);
- Status = ReserveResourceInGcd (TRUE, EfiGcdMemoryTypeMemoryMappedIo, 0xFED00000, SIZE_1KB, 0, SystemTable); // HPET
+ Status = ReserveResourceInGcd (TRUE, EfiGcdMemoryTypeMemoryMappedIo, 0xFED00000, SIZE_1KB, 0, ImageHandle); // HPET
ASSERT_EFI_ERROR (Status);
//
|