Commit 34804efb authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman

greybus: operation: add temporary pointer to response handler

As a preparatory clean up, add a temporary variable to point to the
response message header.
Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent d2320b2d
......@@ -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);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment