greybus: kill gbuf->kref
authorAlex Elder <elder@linaro.org>
Tue, 18 Nov 2014 00:08:29 +0000 (18:08 -0600)
committerGreg Kroah-Hartman <greg@kroah.com>
Tue, 18 Nov 2014 01:19:20 +0000 (17:19 -0800)
Since there is only ever one reference to a gbuf, we don't need a
kref to figure out when it can be freed.  Get rid of the kref and
its supporting code.

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

index 92da63257526ef834a3ae4a3e5b84089267faa4b..1d0dd4acfa2ad48c4016b3cdf33a212b19bf8f09 100644 (file)
@@ -12,7 +12,6 @@
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
-#include <linux/kref.h>
 #include <linux/device.h>
 #include <linux/slab.h>
 
@@ -46,7 +45,6 @@ struct gbuf *greybus_alloc_gbuf(struct greybus_host_device *hd,
        if (!gbuf)
                return NULL;
 
-       kref_init(&gbuf->kref);
        gbuf->hd = hd;
        gbuf->dest_cport_id = dest_cport_id;
        gbuf->status = -EBADR;  /* Initial value--means "never set" */
@@ -62,20 +60,12 @@ struct gbuf *greybus_alloc_gbuf(struct greybus_host_device *hd,
 }
 EXPORT_SYMBOL_GPL(greybus_alloc_gbuf);
 
-static void free_gbuf(struct kref *kref)
+void greybus_free_gbuf(struct gbuf *gbuf)
 {
-       struct gbuf *gbuf = container_of(kref, struct gbuf, kref);
-
        gbuf->hd->driver->free_gbuf_data(gbuf);
 
        kmem_cache_free(gbuf_head_cache, gbuf);
 }
-
-void greybus_free_gbuf(struct gbuf *gbuf)
-{
-       /* drop the reference count and get out of here */
-       kref_put(&gbuf->kref, free_gbuf);
-}
 EXPORT_SYMBOL_GPL(greybus_free_gbuf);
 
 int greybus_submit_gbuf(struct gbuf *gbuf, gfp_t gfp_mask)
index 3af338223609c2033f71f06deaa1a623bd68432d..173170065261bc259d514eb262f60a45d8513ab7 100644 (file)
 */
 
 struct gbuf {
-       struct kref kref;
-
        struct greybus_host_device *hd;
        u16 dest_cport_id;              /* Destination CPort id */
        int status;