This patch adds retries for async execution for commands that
failed due to the CRC errors.
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Marcin Wojtas <mw@semihalf.com>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Mateusz Albecki <mateusz.albecki@intel.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
gBS->SignalEvent (TrbEvent);\r
return;\r
}\r
- }\r
- if ((Trb != NULL) && (Status != EFI_NOT_READY)) {\r
+ } else if ((Trb != NULL) && (Status == EFI_CRC_ERROR) && (Trb->Retries > 0)) {\r
+ Trb->Retries--;\r
+ Trb->Started = FALSE;\r
+ } else if ((Trb != NULL)) {\r
RemoveEntryList (Link);\r
Trb->Packet->TransactionStatus = Status;\r
TrbEvent = Trb->Event;\r