audk/ArmPkg/Library/BdsLib
Olivier Martin 04ad241e20 ArmPkg/BdsLib: Prevent a hang in BdsConnectDevicePath() when a sub-device path is not found
Some device paths were making BdsConnectDevicePath() hang.
To prevent these hangs we check if the handle returned by
gBS->LocateDevicePath() is the same after each iteration.

An example of a device path that hangs:
PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)/USB(0x3,0x0)/HD(...)
The connect controller function manages to find PciRoot()/Pci(0x1,0x0)
but the USB driver does not produce USB(0x0,0x0)/USB(0x3,0x0) and
returns EFI_SUCCESS on its initialization.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15835 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-19 13:35:14 +00:00
..
AArch64 ArmPkg/BdsLib: Removed PSCI discoverability from the Linux loader 2014-07-15 09:21:41 +00:00
Arm ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
BdsAppLoader.c ARM Packages: Fixed line endings 2013-01-25 11:28:06 +00:00
BdsFilePath.c ArmPkg/BdsLib: Prevent a hang in BdsConnectDevicePath() when a sub-device path is not found 2014-08-19 13:35:14 +00:00
BdsHelper.c ArmPkg/BdsLib: Prevent a hang in BdsConnectDevicePath() when a sub-device path is not found 2014-08-19 13:35:14 +00:00
BdsInternal.h ArmPkg/BdsLib: Prevent a hang in BdsConnectDevicePath() when a sub-device path is not found 2014-08-19 13:35:14 +00:00
BdsLib.inf ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
BdsLinuxFdt.c ArmPkg/BdsLib: Removed PSCI discoverability from the Linux loader 2014-07-15 09:21:41 +00:00
BdsLinuxLoader.h ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
BdsLoadOption.c ArmPkg: Introduce GetGlobalEnvironmentVariable() function. 2013-03-12 00:42:59 +00:00