|
@@ -972,6 +972,10 @@ static int usbio_endpoint_enqueue ( struct usb_endpoint *ep,
|
972
|
972
|
unsigned int fill;
|
973
|
973
|
unsigned int index;
|
974
|
974
|
|
|
975
|
+ /* Fail if shutdown is in progress */
|
|
976
|
+ if ( efi_shutdown_in_progress )
|
|
977
|
+ return -ECANCELED;
|
|
978
|
+
|
975
|
979
|
/* Fail if transfer ring is full */
|
976
|
980
|
fill = ( endpoint->prod - endpoint->cons );
|
977
|
981
|
if ( fill >= USBIO_RING_COUNT )
|
|
@@ -1026,6 +1030,10 @@ static int usbio_endpoint_stream ( struct usb_endpoint *ep,
|
1026
|
1030
|
*/
|
1027
|
1031
|
static void usbio_endpoint_poll ( struct usbio_endpoint *endpoint ) {
|
1028
|
1032
|
|
|
1033
|
+ /* Do nothing if shutdown is in progress */
|
|
1034
|
+ if ( efi_shutdown_in_progress )
|
|
1035
|
+ return;
|
|
1036
|
+
|
1029
|
1037
|
/* Poll endpoint */
|
1030
|
1038
|
endpoint->op->poll ( endpoint );
|
1031
|
1039
|
}
|