diff options
Diffstat (limited to 'ArmPlatformPkg')
-rw-r--r-- | ArmPlatformPkg/ArmVirtualizationPkg/PciHostBridgeDxe/PciHostBridge.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/PciHostBridgeDxe/PciHostBridge.c b/ArmPlatformPkg/ArmVirtualizationPkg/PciHostBridgeDxe/PciHostBridge.c index 1534c3d..bf78ded 100644 --- a/ArmPlatformPkg/ArmVirtualizationPkg/PciHostBridgeDxe/PciHostBridge.c +++ b/ArmPlatformPkg/ArmVirtualizationPkg/PciHostBridgeDxe/PciHostBridge.c @@ -929,12 +929,19 @@ SubmitResources( while (List != &HostBridgeInstance->Head) {
RootBridgeInstance = DRIVER_INSTANCE_FROM_LIST_ENTRY (List);
if (RootBridgeHandle == RootBridgeInstance->Handle) {
- while ( *Temp == 0x8A) {
+ for (;
+ *Temp == 0x8A;
+ Temp += sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR)
+ ) {
Ptr = (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *) Temp ;
//
// Check Address Length
//
+ if (Ptr->AddrLen == 0) {
+ HostBridgeInstance->ResourceSubmited = TRUE;
+ continue;
+ }
if (Ptr->AddrLen > 0xffffffff) {
return EFI_INVALID_PARAMETER;
}
@@ -1002,8 +1009,6 @@ SubmitResources( default:
break;
};
-
- Temp += sizeof (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) ;
}
return EFI_SUCCESS;
|