greybus: operation: add temporary pointer to response handler
authorJohan Hovold <johan@hovoldconsulting.com>
Thu, 25 Feb 2016 13:40:23 +0000 (14:40 +0100)
committerGreg Kroah-Hartman <gregkh@google.com>
Fri, 26 Feb 2016 00:26:58 +0000 (16:26 -0800)
As a preparatory clean up, add a temporary variable to point to the
response message header.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/operation.c

index bd79f81..9de548d 100644 (file)
@@ -858,6 +858,7 @@ static void gb_connection_recv_request(struct gb_connection *connection,
 static void gb_connection_recv_response(struct gb_connection *connection,
                        u16 operation_id, u8 result, void *data, size_t size)
 {
+       struct gb_operation_msg_hdr *header;
        struct gb_operation *operation;
        struct gb_message *message;
        int errno = gb_operation_status_map(result);
@@ -872,11 +873,12 @@ static void gb_connection_recv_response(struct gb_connection *connection,
        }
 
        message = operation->response;
-       message_size = sizeof(*message->header) + message->payload_size;
+       header = message->header;
+       message_size = sizeof(*header) + message->payload_size;
        if (!errno && size != message_size) {
                dev_err(&connection->hd->dev,
                        "%s: malformed response 0x%02x received (%zu != %zu)\n",
-                       connection->name, message->header->type, size,
+                       connection->name, header->type, size,
                        message_size);
                errno = -EMSGSIZE;
        }
@@ -884,11 +886,11 @@ static void gb_connection_recv_response(struct gb_connection *connection,
 
        /* We must ignore the payload if a bad status is returned */
        if (errno)
-               size = sizeof(*message->header);
+               size = sizeof(*header);
 
        /* The rest will be handled in work queue context */
        if (gb_operation_result_set(operation, errno)) {
-               memcpy(message->header, data, size);
+               memcpy(header, data, size);
                queue_work(gb_operation_completion_wq, &operation->work);
        }