Commit 2cf72a23 authored by Alex Elder's avatar Alex Elder Committed by Greg Kroah-Hartman

greybus: kill gb_operation_wait()

When a caller wants an operation to complete synchronously, there is
generally no need for any other threads to wait for the operation's
completion.  So here's no need for gb_operation_wait() to be
available for synchronous requests.  At the moment, all operations
are done synchronously.

Knowing that, get rid of the public gb_operation_wait() function,
and open-code it in gb_operation_request_send().  The public wait
function can be re-implemented when it's really needed.

With that function gone, the only waiter for the completion of an
operation is the submitter itself, and only then if it's
synchronous.  So rather than complete_all(), we can simply use
complete() to signal the submitter.
Signed-off-by: default avatarAlex Elder <elder@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
parent 7035833f
......@@ -156,25 +156,10 @@ static void gb_operation_complete(struct gb_operation *operation)
if (operation->callback)
operation->callback(operation);
else
complete_all(&operation->completion);
complete(&operation->completion);
gb_operation_put(operation);
}
/*
* Wait for a submitted operation to complete. Returns the result
* of the operation; this will be -EINTR if the wait was interrupted.
*/
static int gb_operation_wait(struct gb_operation *operation)
{
int ret;
ret = wait_for_completion_interruptible(&operation->completion);
if (ret < 0)
gb_operation_cancel(operation, -EINTR);
return operation->errno;
}
#if 0
static void gb_operation_request_handle(struct gb_operation *operation)
{
......@@ -478,7 +463,12 @@ int gb_operation_request_send(struct gb_operation *operation,
if (ret || callback)
return ret;
return gb_operation_wait(operation);
/* Cancel the operation if interrupted */
ret = wait_for_completion_interruptible(&operation->completion);
if (ret < 0)
gb_operation_cancel(operation, -EINTR);
return operation->errno;
}
/*
......
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