return -EPIPE;
                }
 
-               err = usb_submit_urb(ctx->urb, GFP_ATOMIC);
+               if (!atomic_read(&ep->chip->shutdown))
+                       err = usb_submit_urb(ctx->urb, GFP_ATOMIC);
+               else
+                       err = -ENODEV;
                if (err < 0) {
-                       usb_audio_err(ep->chip,
-                                     "Unable to submit urb #%d: %d at %s\n",
-                                     ctx->index, err, __func__);
-                       if (!in_stream_lock)
-                               notify_xrun(ep);
+                       if (!atomic_read(&ep->chip->shutdown)) {
+                               usb_audio_err(ep->chip,
+                                             "Unable to submit urb #%d: %d at %s\n",
+                                             ctx->index, err, __func__);
+                               if (!in_stream_lock)
+                                       notify_xrun(ep);
+                       }
                        return -EPIPE;
                }
 
                prepare_inbound_urb(ep, ctx);
        }
 
-       err = usb_submit_urb(urb, GFP_ATOMIC);
+       if (!atomic_read(&ep->chip->shutdown))
+               err = usb_submit_urb(urb, GFP_ATOMIC);
+       else
+               err = -ENODEV;
        if (err == 0)
                return;
 
-       usb_audio_err(ep->chip, "cannot submit urb (err = %d)\n", err);
-       notify_xrun(ep);
+       if (!atomic_read(&ep->chip->shutdown)) {
+               usb_audio_err(ep->chip, "cannot submit urb (err = %d)\n", err);
+               notify_xrun(ep);
+       }
 
 exit_clear:
        clear_bit(ctx->index, &ep->active_mask);
                        goto __error;
                }
 
-               err = usb_submit_urb(urb, GFP_ATOMIC);
+               if (!atomic_read(&ep->chip->shutdown))
+                       err = usb_submit_urb(urb, GFP_ATOMIC);
+               else
+                       err = -ENODEV;
                if (err < 0) {
-                       usb_audio_err(ep->chip,
-                               "cannot submit urb %d, error %d: %s\n",
-                               i, err, usb_error_string(err));
+                       if (!atomic_read(&ep->chip->shutdown))
+                               usb_audio_err(ep->chip,
+                                             "cannot submit urb %d, error %d: %s\n",
+                                             i, err, usb_error_string(err));
                        goto __error;
                }
                set_bit(i, &ep->active_mask);