]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
greybus: always drop reference in gb_operation_work()
authorAlex Elder <elder@linaro.org>
Mon, 1 Dec 2014 13:53:11 +0000 (07:53 -0600)
committerGreg Kroah-Hartman <greg@kroah.com>
Tue, 2 Dec 2014 04:40:55 +0000 (20:40 -0800)
Currently we issue a warning in gb_operation_work() if an operation
has no callback function defined.  But we return without dropping
the reference to the operation as we should.

Stop warning if there's no callback, call it only if it's defined,
and always drop the operation reference before returning.

This means we're now treating a NULL callback pointer as a normal
condition.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
drivers/staging/greybus/operation.c

index 75900d3129be222106b7119dcd7c9d95131e1a14..aaac03733fd45b065f5b8f824b8ae0e985125d05 100644 (file)
@@ -265,11 +265,10 @@ static void gb_operation_work(struct work_struct *work)
        struct gb_operation *operation;
 
        operation = container_of(work, struct gb_operation, work);
-       if (WARN_ON(!operation->callback))
-               return;
-
-       operation->callback(operation);
-       operation->callback = NULL;
+       if (operation->callback) {
+               operation->callback(operation);
+               operation->callback = NULL;
+       }
        gb_operation_put(operation);
 }