summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Vorontsov <avorontsov@ru.mvista.com>2010-01-27 17:09:34 +0300
committerGreg Kroah-Hartman <gregkh@suse.de>2010-02-16 15:11:06 -0800
commit1a02d59aba9b61b820517fb135086471c065b573 (patch)
tree349a6c71a67036b415ae48aaf1a61331244afde7
parent1ebca9dad5abe8b2ed4dbd186cd657fb47c1f321 (diff)
downloadlinux-3.10-1a02d59aba9b61b820517fb135086471c065b573.tar.gz
linux-3.10-1a02d59aba9b61b820517fb135086471c065b573.tar.bz2
linux-3.10-1a02d59aba9b61b820517fb135086471c065b573.zip
kfifo: Make kfifo_initialized work after kfifo_free
After kfifo rework it's no longer possible to reliably know if kfifo is usable, since after kfifo_free(), kfifo_initialized() would still return true. The correct behaviour is needed for at least FHCI USB driver. This patch fixes the issue by resetting the kfifo to zero values (the same approach is used in kfifo_alloc() if allocation failed). Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Acked-by: Stefani Seibold <stefani@seibold.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--kernel/kfifo.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/kfifo.c b/kernel/kfifo.c
index 498cabba225..559fb5582b6 100644
--- a/kernel/kfifo.c
+++ b/kernel/kfifo.c
@@ -97,6 +97,7 @@ EXPORT_SYMBOL(kfifo_alloc);
void kfifo_free(struct kfifo *fifo)
{
kfree(fifo->buffer);
+ _kfifo_init(fifo, NULL, 0);
}
EXPORT_SYMBOL(kfifo_free);