Signed-off-by: Andrew Morton --- drivers/usb/core/hub.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff -puN drivers/usb/core/hub.c~gregkh-usb-usb-hub-don-t-return-status-0-from-resume drivers/usb/core/hub.c --- a/drivers/usb/core/hub.c~gregkh-usb-usb-hub-don-t-return-status-0-from-resume +++ a/drivers/usb/core/hub.c @@ -1790,7 +1790,10 @@ static int finish_device_resume(struct u * and device drivers will know about any resume quirks. */ status = usb_get_status(udev, USB_RECIP_DEVICE, 0, &devstatus); - if (status < 2) + if (status >= 0) + status = (status == 2 ? 0 : -ENODEV); + + if (status) dev_dbg(&udev->dev, "gone after usb resume? status %d\n", status); _