greybus: unlock gbuf mutex on free
authorAlex Elder <elder@linaro.org>
Thu, 16 Oct 2014 11:35:25 +0000 (06:35 -0500)
committerGreg Kroah-Hartman <greg@kroah.com>
Fri, 17 Oct 2014 16:11:59 +0000 (18:11 +0200)
To drop a reference on a gbuf, greybus_free_gbuf() is called.  That
uses kref_put_mutex() to drop the refernce under protection of
gbuf_mutex.  However the release routine, free_gbuf(), never
releases the mutex as it should.  Fix that.

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

index 2ef6ead..a33dbb4 100644 (file)
@@ -82,6 +82,7 @@ static void free_gbuf(struct kref *kref)
        gbuf->connection->hd->driver->free_gbuf_data(gbuf);
 
        kmem_cache_free(gbuf_head_cache, gbuf);
+       mutex_unlock(&gbuf_mutex);
 }
 
 void greybus_free_gbuf(struct gbuf *gbuf)