aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/greybus/connection.c
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2016-01-28 15:50:48 +0530
committerGreg Kroah-Hartman <gregkh@google.com>2016-02-02 21:37:50 -0800
commit127c1fbd55939642365f26efd3121562629ec1b1 (patch)
tree785876ad6f1486a016789e82809d81b97f18cb70 /drivers/staging/greybus/connection.c
parentgreybus: lsgb: remove it, it's in the gb-utils repo (diff)
downloadlinux-dev-127c1fbd55939642365f26efd3121562629ec1b1.tar.xz
linux-dev-127c1fbd55939642365f26efd3121562629ec1b1.zip
greybus: connection: Fix sparse warnings around locking
The callers ensures that connection->lock is taken before calling few routines, but that isn't enough for sparse as it sees an unexpected unlock. greybus/connection.c:380:29: warning: context imbalance in 'gb_connection_cancel_operations' - unexpected unlock Fix that adding __must_lock() attribute to the function declaration. This also adds the attribute for gb_connection_flush_incoming_operations(), which isn't showing any sparse warnings with the current state of code, but with minor rearrangements of the code. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Reviewed-by: Alex Elder <elder@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/connection.c')
-rw-r--r--drivers/staging/greybus/connection.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/staging/greybus/connection.c b/drivers/staging/greybus/connection.c
index 77c2f672b405..4f5e2adfa8c4 100644
--- a/drivers/staging/greybus/connection.c
+++ b/drivers/staging/greybus/connection.c
@@ -373,6 +373,7 @@ gb_connection_control_disconnected(struct gb_connection *connection)
*/
static void gb_connection_cancel_operations(struct gb_connection *connection,
int errno)
+ __must_hold(&connection->lock)
{
struct gb_operation *operation;
@@ -401,6 +402,7 @@ static void gb_connection_cancel_operations(struct gb_connection *connection,
static void
gb_connection_flush_incoming_operations(struct gb_connection *connection,
int errno)
+ __must_hold(&connection->lock)
{
struct gb_operation *operation;
bool incoming;