diff --git a/drivers/staging/greybus/operation.c b/drivers/staging/greybus/operation.c index 72e5ef9ecad8..f4554528e7ab 100644 --- a/drivers/staging/greybus/operation.c +++ b/drivers/staging/greybus/operation.c @@ -137,16 +137,17 @@ static void gb_operation_request_handle(struct gb_operation *operation) struct gb_protocol *protocol = operation->connection->protocol; struct gb_operation_msg_hdr *header; + header = operation->request->transfer_buffer; + /* * If the protocol has no incoming request handler, report * an error and mark the request bad. */ if (protocol->request_recv) { - protocol->request_recv(operation); + protocol->request_recv(header->type, operation); goto out; } - header = operation->request->transfer_buffer; gb_connection_err(operation->connection, "unexpected incoming request type 0x%02hhx\n", header->type); operation->result = GB_OP_PROTOCOL_BAD; diff --git a/drivers/staging/greybus/protocol.h b/drivers/staging/greybus/protocol.h index f57f0db4f819..1aeb34068a3f 100644 --- a/drivers/staging/greybus/protocol.h +++ b/drivers/staging/greybus/protocol.h @@ -15,7 +15,7 @@ struct gb_operation; typedef int (*gb_connection_init_t)(struct gb_connection *); typedef void (*gb_connection_exit_t)(struct gb_connection *); -typedef void (*gb_request_recv_t)(struct gb_operation *); +typedef void (*gb_request_recv_t)(u8, struct gb_operation *); /* * Protocols having the same id but different major and/or minor