diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index 74197249c2454a1359fb772a177ad68590b115e8..c47c8052b4866f536b7482e4452d7f99ec221051 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -265,7 +265,9 @@ static void sg_complete (struct urb *urb, struct pt_regs *regs)
 				continue;
 			if (found) {
 				status = usb_unlink_urb (io->urbs [i]);
-				if (status != -EINPROGRESS && status != -EBUSY)
+				if (status != -EINPROGRESS
+						&& status != -ENODEV
+						&& status != -EBUSY)
 					dev_err (&io->dev->dev,
 						"%s, unlink --> %d\n",
 						__FUNCTION__, status);