mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 14:12:06 +00:00
greybus: handle data send errors in workqueue
The data sent callback can execute in atomic context. If an error occurred, we shouldn't be completing the operation right then and there. Instead, hand it off to the operation workqueue to complete the operation. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
This commit is contained in:
parent
ee637a9b0e
commit
583c3117a4
@ -506,9 +506,8 @@ greybus_data_sent(struct greybus_host_device *hd, void *header, int status)
|
||||
/* XXX Right now we assume we're an outgoing request */
|
||||
message = gb_hd_message_find(hd, header);
|
||||
operation = message->operation;
|
||||
gb_connection_err(operation->connection, "send error %d\n", status);
|
||||
operation->errno = status;
|
||||
gb_operation_complete(operation);
|
||||
queue_work(gb_operation_workqueue, &operation->work);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(greybus_data_sent);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user