diff options
author | Alex Elder | 2014-10-18 04:03:49 +0200 |
---|---|---|
committer | Greg Kroah-Hartman | 2014-10-18 12:38:55 +0200 |
commit | f012a520e1a8bb5d05de3307334a8de4dd95afdf (patch) | |
tree | e0813368909586c2ea089b3409bf6ce32002227d /drivers/staging/greybus/operation.c | |
parent | greybus: update gbuf status for completion handlers (diff) | |
download | kernel-qcow2-linux-f012a520e1a8bb5d05de3307334a8de4dd95afdf.tar.gz kernel-qcow2-linux-f012a520e1a8bb5d05de3307334a8de4dd95afdf.tar.xz kernel-qcow2-linux-f012a520e1a8bb5d05de3307334a8de4dd95afdf.zip |
greybus: report gbuf errors
If a gbuf completion indicates an error has occurred, report it.
Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Diffstat (limited to 'drivers/staging/greybus/operation.c')
-rw-r--r-- | drivers/staging/greybus/operation.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/drivers/staging/greybus/operation.c b/drivers/staging/greybus/operation.c index 4d19eec790f0..4cbe33e21254 100644 --- a/drivers/staging/greybus/operation.c +++ b/drivers/staging/greybus/operation.c @@ -224,10 +224,29 @@ static void gb_operation_recv_work(struct work_struct *recv_work) * we'll be done with everything we need to do before we mark it * finished. * - * XXX We may want to record that a buffer is (or is no longer) in flight. + * 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->context; + struct gb_operation_msg_hdr *header; + int id; + int type; + + if (gbuf == operation->request) + header = operation->request_payload; + else if (gbuf == operation->response) + header = operation->response_payload; + else + header = NULL; + id = header ? (int)header->id : -1; + type = header ? (int)header->type : -1; + + gb_connection_err(operation->connection, + "operation %d type %d gbuf error %d", + id, type, gbuf->status); + } return; } |