From 198dd26714ba4a60ccc5ce70bc4506613b4f0c2d Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Tue, 27 Sep 2011 19:00:58 +0200 Subject: [PATCH] staging: nvec: Export nvec_msg_free() to clients 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 Acked-by: Marc Dietrich Signed-off-by: Greg Kroah-Hartman --- drivers/staging/nvec/nvec.c | 6 ++++-- drivers/staging/nvec/nvec.h | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c index 3fa1c75bda8..488d7dd78a2 100644 --- a/drivers/staging/nvec/nvec.c +++ b/drivers/staging/nvec/nvec.c @@ -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) diff --git a/drivers/staging/nvec/nvec.h b/drivers/staging/nvec/nvec.h index 44787535c0e..f8ffe0002d1 100644 --- a/drivers/staging/nvec/nvec.h +++ b/drivers/staging/nvec/nvec.h @@ -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 -- 2.11.4.GIT