From 0e3d0e8fad52ed478647a1a122e21c7deb7f96cf Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Fri, 21 Nov 2014 19:29:16 -0600 Subject: [PATCH] greybus: minor tweak in gb_connection_recv_response() Any time we queue work on the operation work queue we need to have set the operation errno first. This patch moves the assignment of that field to be immediately prior to the queue_work() call in gb_connection_recv_response(), so it is easier to see at a glance that this has been done. Signed-off-by: Alex Elder Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/operation.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/staging/greybus/operation.c b/drivers/staging/greybus/operation.c index ab27cd94880a..32cd2358ab1c 100644 --- a/drivers/staging/greybus/operation.c +++ b/drivers/staging/greybus/operation.c @@ -563,6 +563,7 @@ static void gb_connection_recv_response(struct gb_connection *connection, struct gb_operation *operation; struct gb_message *message; struct gb_operation_msg_hdr *header; + int result; operation = gb_pending_operation_find(connection, operation_id); if (!operation) { @@ -577,17 +578,18 @@ static void gb_connection_recv_response(struct gb_connection *connection, if (size <= message->size) { /* Transfer the operation result from the response header */ header = message->header; - operation->errno = gb_operation_status_map(header->result); + result = gb_operation_status_map(header->result); } else { gb_connection_err(connection, "recv buffer too small"); - operation->errno = -E2BIG; + result = -E2BIG; } /* We must ignore the payload if a bad status is returned */ - if (!operation->errno) + if (!result) memcpy(message->header, data, size); /* The rest will be handled in work queue context */ + operation->errno = result; queue_work(gb_operation_workqueue, &operation->work); }