Commit 3a0e3c3e authored by Alex Elder's avatar Alex Elder Committed by Greg Kroah-Hartman

greybus: move gb_operation_gbuf_complete()

Simple move of a block of code, done as a separate commit to make it
easier to see that's all that's going on.
Signed-off-by: default avatarAlex Elder <elder@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
parent eecf6deb
...@@ -198,6 +198,49 @@ static void gb_operation_request_handle(struct gb_operation *operation) ...@@ -198,6 +198,49 @@ static void gb_operation_request_handle(struct gb_operation *operation)
gb_operation_complete(operation); gb_operation_complete(operation);
} }
/*
* Buffer completion function. We get notified whenever any buffer
* completes. For outbound messages, this tells us that the message
* has been sent. For inbound messages, it means the data has
* landed in the buffer and is ready to be processed.
*
* Either way, we don't do anything. We don't really care when an
* outbound message has been sent, and for incoming messages we
* we'll be done with everything we need to do before we mark it
* finished.
*
* XXX We may want to record that a request is (or is no longer) in flight.
*/
static void gb_operation_gbuf_complete(struct gbuf *gbuf)
{
if (gbuf->status) {
struct gb_operation *operation = gbuf->operation;
struct gb_operation_msg_hdr *header;
int id;
int type;
if (gbuf == operation->request)
header = operation->request->transfer_buffer;
else if (gbuf == operation->response)
header = operation->response->transfer_buffer;
else
header = NULL;
if (header) {
id = le16_to_cpu(header->id);
type = header->type;
} else {
id = -1;
type = -1;
}
gb_connection_err(operation->connection,
"operation %d type %d gbuf error %d",
id, type, gbuf->status);
}
return;
}
/* /*
* Either this operation contains an incoming request, or its * Either this operation contains an incoming request, or its
* response has arrived. An incoming request will have a null * response has arrived. An incoming request will have a null
...@@ -242,49 +285,6 @@ static void operation_timeout(struct work_struct *work) ...@@ -242,49 +285,6 @@ static void operation_timeout(struct work_struct *work)
gb_operation_complete(operation); gb_operation_complete(operation);
} }
/*
* Buffer completion function. We get notified whenever any buffer
* completes. For outbound messages, this tells us that the message
* has been sent. For inbound messages, it means the data has
* landed in the buffer and is ready to be processed.
*
* Either way, we don't do anything. We don't really care when an
* outbound message has been sent, and for incoming messages we
* we'll be done with everything we need to do before we mark it
* finished.
*
* XXX We may want to record that a request is (or is no longer) in flight.
*/
static void gb_operation_gbuf_complete(struct gbuf *gbuf)
{
if (gbuf->status) {
struct gb_operation *operation = gbuf->operation;
struct gb_operation_msg_hdr *header;
int id;
int type;
if (gbuf == operation->request)
header = operation->request->transfer_buffer;
else if (gbuf == operation->response)
header = operation->response->transfer_buffer;
else
header = NULL;
if (header) {
id = le16_to_cpu(header->id);
type = header->type;
} else {
id = -1;
type = -1;
}
gb_connection_err(operation->connection,
"operation %d type %d gbuf error %d",
id, type, gbuf->status);
}
return;
}
/* /*
* Allocate a buffer to be used for an operation request or response * Allocate a buffer to be used for an operation request or response
* message. For outgoing messages, both types of message contain a * message. For outgoing messages, both types of message contain a
......
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