On at least some platforms (observed with a Raspberry Pi), any attempt to perform USB transfers via EFI_USB_IO_PROTOCOL during EFI shutdown will lock up the system. This is quite probably due to the already documented failure of all EFI timers when ExitBootServices() is called: see e.g. commit 5cf5ffea2 "[efi] Work around temporal anomaly encountered during ExitBootServices()". Work around this problem by refusing to poll endpoints if shutdown is in progress, and by immediately failing any attempts to enqueue new transfers. Signed-off-by: Michael Brown <mcb30@ipxe.org>tags/v1.20.1
|
|
||
972 |
|
972 |
|
973 |
|
973 |
|
974 |
|
974 |
|
|
975 |
|
|
|
976 |
|
|
|
977 |
|
|
|
978 |
|
|
975 |
|
979 |
|
976 |
|
980 |
|
977 |
|
981 |
|
|
|
||
1026 |
|
1030 |
|
1027 |
|
1031 |
|
1028 |
|
1032 |
|
|
1033 |
|
|
|
1034 |
|
|
|
1035 |
|
|
|
1036 |
|
|
1029 |
|
1037 |
|
1030 |
|
1038 |
|
1031 |
|
1039 |
|