UINT8 *DataPhy;\r
VOID *DataMap;\r
BOOLEAN IsSlowDevice;\r
+ UINTN TransferDataLength;\r
\r
Uhc = UHC_FROM_USB2_HC_PROTO (This);\r
TDs = NULL;\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- if ((TransferDirection != EfiUsbNoData) && (DataLength == NULL)) {\r
+ if ((TransferDirection != EfiUsbNoData) && (Data == NULL || DataLength == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
+ if (TransferDirection == EfiUsbNoData) {\r
+ TransferDataLength = 0;\r
+ } else {\r
+ TransferDataLength = *DataLength;\r
+ }\r
+\r
*TransferResult = EFI_USB_ERR_SYSTEM;\r
Status = EFI_DEVICE_ERROR;\r
\r
PktId,\r
RequestPhy,\r
DataPhy,\r
- *DataLength,\r
+ TransferDataLength,\r
(UINT8) MaximumPacketLength,\r
IsSlowDevice\r
);\r