Эх сурвалжийг харах

mei: wake blocked write on link reset

In case of link reset all blocked writes should be interrupted.
Note, that currently blocking write is used only through bus layer.

Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Alexander Usyskin 9 жил өмнө
parent
commit
0faf6a3bba

+ 6 - 1
drivers/misc/mei/client.c

@@ -1691,7 +1691,8 @@ out:
 
 
 		mutex_unlock(&dev->device_lock);
 		mutex_unlock(&dev->device_lock);
 		rets = wait_event_interruptible(cl->tx_wait,
 		rets = wait_event_interruptible(cl->tx_wait,
-				cl->writing_state == MEI_WRITE_COMPLETE);
+				cl->writing_state == MEI_WRITE_COMPLETE ||
+				(!mei_cl_is_connected(cl)));
 		mutex_lock(&dev->device_lock);
 		mutex_lock(&dev->device_lock);
 		/* wait_event_interruptible returns -ERESTARTSYS */
 		/* wait_event_interruptible returns -ERESTARTSYS */
 		if (rets) {
 		if (rets) {
@@ -1699,6 +1700,10 @@ out:
 				rets = -EINTR;
 				rets = -EINTR;
 			goto err;
 			goto err;
 		}
 		}
+		if (cl->writing_state != MEI_WRITE_COMPLETE) {
+			rets = -EFAULT;
+			goto err;
+		}
 	}
 	}
 
 
 	rets = size;
 	rets = size;