Certain PCI device may have capability pointing to itself.
Update LocateCapabilityRegBlock() to break when detecting such loop.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18473
6f19259b-4bc3-4df7-8a09-
765794883524
return EFI_SUCCESS;\r
}\r
\r
+ //\r
+ // Certain PCI device may incorrectly have capability pointing to itself,\r
+ // break to avoid dead loop.\r
+ //\r
+ if (CapabilityPtr == (UINT8) (CapabilityEntry >> 8)) {\r
+ break;\r
+ }\r
+\r
CapabilityPtr = (UINT8) (CapabilityEntry >> 8);\r
}\r
\r