Add flag to identify unidirectional operations.
Use convenience helper rather than open coding the identification when
suppressing response messages.
Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
/* Caller has made sure we at least have a message header. */
request_size = size - sizeof(struct gb_operation_msg_hdr);
+ if (!id)
+ flags |= GB_OPERATION_FLAG_UNIDIRECTIONAL;
+
operation = gb_operation_create_common(connection, type,
request_size, 0, flags, GFP_ATOMIC);
if (operation) {
}
/* Sender of request does not care about response. */
- if (!operation->id)
+ if (gb_operation_is_unidirectional(operation))
return 0;
if (!operation->response) {
};
#define GB_OPERATION_FLAG_INCOMING BIT(0)
+#define GB_OPERATION_FLAG_UNIDIRECTIONAL BIT(1)
/*
* A Greybus operation is a remote procedure call performed over a
return operation->flags & GB_OPERATION_FLAG_INCOMING;
}
+static inline bool
+gb_operation_is_unidirectional(struct gb_operation *operation)
+{
+ return operation->flags & GB_OPERATION_FLAG_UNIDIRECTIONAL;
+}
+
void gb_connection_recv(struct gb_connection *connection,
void *data, size_t size);