staging: nvec: Export nvec_msg_free() to clients
authorJulian Andres Klode <jak@jak-linux.org>
Tue, 27 Sep 2011 17:00:58 +0000 (19:00 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 30 Sep 2011 00:41:36 +0000 (17:41 -0700)
Client code wishing to make use of nvec_write_sync() must
have a way to free the returned pointer, otherwise we run
out of poool memory fairly soon.

Signed-off-by: Julian Andres Klode <jak@jak-linux.org>
Acked-by: Marc Dietrich <marvin24@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/nvec/nvec.c
drivers/staging/nvec/nvec.h

index 3fa1c75bda8a62cd2b77d474b0351e12b7642dd9..488d7dd78a2ff8055a5b56c2680158d944d70c1c 100644 (file)
@@ -159,12 +159,13 @@ static struct nvec_msg *nvec_msg_alloc(struct nvec_chip *nvec)
  *
  * Free the given message
  */
-static void nvec_msg_free(struct nvec_chip *nvec, struct nvec_msg *msg)
+inline void nvec_msg_free(struct nvec_chip *nvec, struct nvec_msg *msg)
 {
        if (msg != &nvec->tx_scratch)
                dev_vdbg(nvec->dev, "INFO: Free %ti\n", msg - nvec->msg_pool);
        atomic_set(&msg->used, 0);
 }
+EXPORT_SYMBOL_GPL(nvec_msg_free);
 
 /**
  * nvec_msg_is_event - Return %true if @msg is an event
@@ -259,7 +260,8 @@ EXPORT_SYMBOL(nvec_write_async);
  * interrupt handlers.
  *
  * Returns: A pointer to the response message on success,
- * %NULL on failure.
+ * %NULL on failure. Free with nvec_msg_free() once no longer
+ * used.
  */
 struct nvec_msg *nvec_write_sync(struct nvec_chip *nvec,
                const unsigned char *data, short size)
index 44787535c0eacfe674963f471870cf2f3b5f95ec..f8ffe0002d1f926a4e884fde30b173335c40a61f 100644 (file)
@@ -192,4 +192,7 @@ extern int nvec_register_notifier(struct nvec_chip *nvec,
 extern int nvec_unregister_notifier(struct device *dev,
                                    struct notifier_block *nb,
                                    unsigned int events);
+
+extern void nvec_msg_free(struct nvec_chip *nvec, struct nvec_msg *msg);
+
 #endif