|
@@ -122,7 +122,8 @@ int mei_amthif_read(struct mei_device *dev, struct file *file,
|
|
mutex_unlock(&dev->device_lock);
|
|
mutex_unlock(&dev->device_lock);
|
|
|
|
|
|
wait_ret = wait_event_interruptible(cl->rx_wait,
|
|
wait_ret = wait_event_interruptible(cl->rx_wait,
|
|
- !list_empty(&cl->rd_completed));
|
|
|
|
|
|
+ !list_empty(&cl->rd_completed) ||
|
|
|
|
+ !mei_cl_is_connected(cl));
|
|
|
|
|
|
/* Locking again the Mutex */
|
|
/* Locking again the Mutex */
|
|
mutex_lock(&dev->device_lock);
|
|
mutex_lock(&dev->device_lock);
|
|
@@ -130,6 +131,11 @@ int mei_amthif_read(struct mei_device *dev, struct file *file,
|
|
if (wait_ret)
|
|
if (wait_ret)
|
|
return -ERESTARTSYS;
|
|
return -ERESTARTSYS;
|
|
|
|
|
|
|
|
+ if (!mei_cl_is_connected(cl)) {
|
|
|
|
+ rets = -EBUSY;
|
|
|
|
+ goto out;
|
|
|
|
+ }
|
|
|
|
+
|
|
cb = mei_cl_read_cb(cl, file);
|
|
cb = mei_cl_read_cb(cl, file);
|
|
}
|
|
}
|
|
|
|
|