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 <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
diff --git a/drivers/staging/greybus/operation.c b/drivers/staging/greybus/operation.c
index ab27cd9..32cd235 100644
--- a/drivers/staging/greybus/operation.c
+++ b/drivers/staging/greybus/operation.c
@@ -563,6 +563,7 @@
 	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 @@
 	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);
 }