greybus: operation: fix definition of the invalid type

The invalid request type has been redefined as 0x7f.

Also remove the redundant redefinition of the invalid type from the
operation header.

Note that operation type 0x00 has been repurposed for the new generic
ping operation, which will be used to implement proper connection tear
down.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Johan Hovold 2016-04-29 17:08:37 +02:00 committed by Greg Kroah-Hartman
parent a2cf2e5946
commit 7adb32b429
3 changed files with 9 additions and 13 deletions

View File

@ -95,9 +95,9 @@ struct gb_operation_msg_hdr {
} __packed; } __packed;
/* Generic request numbers supported by all modules */ /* Generic request types */
#define GB_REQUEST_TYPE_INVALID 0x00
#define GB_REQUEST_TYPE_PROTOCOL_VERSION 0x01 #define GB_REQUEST_TYPE_PROTOCOL_VERSION 0x01
#define GB_REQUEST_TYPE_INVALID 0x7f
struct gb_protocol_version_request { struct gb_protocol_version_request {
__u8 major; __u8 major;

View File

@ -282,10 +282,10 @@ static void gb_operation_message_init(struct gb_host_device *hd,
/* /*
* The type supplied for incoming message buffers will be * The type supplied for incoming message buffers will be
* 0x00. Such buffers will be overwritten by arriving data * GB_REQUEST_TYPE_INVALID. Such buffers will be overwritten by
* so there's no need to initialize the message header. * arriving data so there's no need to initialize the message header.
*/ */
if (type != GB_OPERATION_TYPE_INVALID) { if (type != GB_REQUEST_TYPE_INVALID) {
u16 message_size = (u16)(sizeof(*header) + payload_size); u16 message_size = (u16)(sizeof(*header) + payload_size);
/* /*
@ -536,7 +536,7 @@ gb_operation_create_flags(struct gb_connection *connection,
size_t response_size, unsigned long flags, size_t response_size, unsigned long flags,
gfp_t gfp) gfp_t gfp)
{ {
if (WARN_ON_ONCE(type == GB_OPERATION_TYPE_INVALID)) if (WARN_ON_ONCE(type == GB_REQUEST_TYPE_INVALID))
return NULL; return NULL;
if (WARN_ON_ONCE(type & GB_MESSAGE_TYPE_RESPONSE)) if (WARN_ON_ONCE(type & GB_MESSAGE_TYPE_RESPONSE))
type &= ~GB_MESSAGE_TYPE_RESPONSE; type &= ~GB_MESSAGE_TYPE_RESPONSE;
@ -573,7 +573,9 @@ gb_operation_create_incoming(struct gb_connection *connection, u16 id,
flags |= GB_OPERATION_FLAG_UNIDIRECTIONAL; flags |= GB_OPERATION_FLAG_UNIDIRECTIONAL;
operation = gb_operation_create_common(connection, type, operation = gb_operation_create_common(connection, type,
request_size, 0, flags, GFP_ATOMIC); request_size,
GB_REQUEST_TYPE_INVALID,
flags, GFP_ATOMIC);
if (!operation) if (!operation)
return NULL; return NULL;

View File

@ -17,12 +17,6 @@ struct gb_operation;
/* The default amount of time a request is given to complete */ /* The default amount of time a request is given to complete */
#define GB_OPERATION_TIMEOUT_DEFAULT 1000 /* milliseconds */ #define GB_OPERATION_TIMEOUT_DEFAULT 1000 /* milliseconds */
/*
* No protocol may define an operation that has numeric value 0x00.
* It is reserved as an explicitly invalid value.
*/
#define GB_OPERATION_TYPE_INVALID ((u8)0x00)
/* /*
* The top bit of the type in an operation message header indicates * The top bit of the type in an operation message header indicates
* whether the message is a request (bit clear) or response (bit set) * whether the message is a request (bit clear) or response (bit set)