diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c index 472cbcdf745607ccf39c9d0b40d259943d602286..e6a6d67c87058039cb39e23683cde1af49c3686a 100644 --- a/drivers/usb/core/devio.c +++ b/drivers/usb/core/devio.c @@ -2583,7 +2583,9 @@ static unsigned int usbdev_poll(struct file *file, if (file->f_mode & FMODE_WRITE && !list_empty(&ps->async_completed)) mask |= POLLOUT | POLLWRNORM; if (!connected(ps)) - mask |= POLLERR | POLLHUP; + mask |= POLLHUP; + if (list_empty(&ps->list)) + mask |= POLLERR; return mask; }