|
@@ -749,6 +749,10 @@ static ssize_t port_fops_read(struct file *filp, char __user *ubuf,
|
|
|
|
|
|
port = filp->private_data;
|
|
|
|
|
|
+ /* Port is hot-unplugged. */
|
|
|
+ if (!port->guest_connected)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
if (!port_has_data(port)) {
|
|
|
/*
|
|
|
* If nothing's connected on the host just return 0 in
|
|
@@ -765,7 +769,7 @@ static ssize_t port_fops_read(struct file *filp, char __user *ubuf,
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
}
|
|
|
- /* Port got hot-unplugged. */
|
|
|
+ /* Port got hot-unplugged while we were waiting above. */
|
|
|
if (!port->guest_connected)
|
|
|
return -ENODEV;
|
|
|
/*
|