]> git.proxmox.com Git - mirror_edk2.git/blobdiff - DuetPkg/PciBusNoEnumerationDxe/PciCommand.c
Terminate the Capability List traversal if the Capability Pointer is less than 0x40...
[mirror_edk2.git] / DuetPkg / PciBusNoEnumerationDxe / PciCommand.c
index 6d524c1a25d3c6319252e97ea8c5c8d4455bcdf8..58b482c63693a0d4bd3089697b5f935b71efa03a 100644 (file)
@@ -433,11 +433,7 @@ Returns:
     }\r
   }\r
 \r
-  while (CapabilityPtr > 0x3F) {\r
-    //\r
-    // Mask it to DWORD alignment per PCI spec\r
-    //\r
-    CapabilityPtr &= 0xFC;\r
+  while ((CapabilityPtr >= 0x40) && ((CapabilityPtr & 0x03) == 0x00)) {\r
     PciIoDevice->PciIo.Pci.Read (\r
                              &PciIoDevice->PciIo,\r
                              EfiPciIoWidthUint16,\r