public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] kfifo_alloc buffer
@ 2004-11-04 17:06 Martin Waitz
  2004-11-04 19:15 ` Stelian Pop
  0 siblings, 1 reply; 3+ messages in thread
From: Martin Waitz @ 2004-11-04 17:06 UTC (permalink / raw)
  To: Stelian Pop; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1234 bytes --]

hi :)

kfifo_alloc tries to round up the buffer size to the next power of two.
But it accidently uses the original size when calling kfifo_init,
which will BUG.

Signed-off-by: Martin Waitz <tali@admingilde.org>

Index: kernel/kfifo.c
===================================================================
RCS file: /home/inf3/mnwaitz/src/linux-cvs/linux-2.5/kernel/kfifo.c,v
retrieving revision 1.2
diff -u -p -r1.2 kfifo.c
--- kernel/kfifo.c	19 Oct 2004 15:12:21 -0000	1.2
+++ kernel/kfifo.c	4 Nov 2004 17:00:34 -0000
@@ -66,7 +66,6 @@ EXPORT_SYMBOL(kfifo_init);
  */
 struct kfifo *kfifo_alloc(unsigned int size, int gfp_mask, spinlock_t *lock)
 {
-	unsigned int newsize;
 	unsigned char *buffer;
 	struct kfifo *ret;
 
@@ -74,13 +73,12 @@ struct kfifo *kfifo_alloc(unsigned int s
 	 * round up to the next power of 2, since our 'let the indices
 	 * wrap' tachnique works only in this case.
 	 */
-	newsize = size;
 	if (size & (size - 1)) {
 		BUG_ON(size > 0x80000000);
-		newsize = roundup_pow_of_two(size);
+		size = roundup_pow_of_two(size);
 	}
 
-	buffer = kmalloc(newsize, gfp_mask);
+	buffer = kmalloc(size, gfp_mask);
 	if (!buffer)
 		return ERR_PTR(-ENOMEM);
 

-- 
Martin Waitz

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] kfifo_alloc buffer
  2004-11-04 17:06 [PATCH] kfifo_alloc buffer Martin Waitz
@ 2004-11-04 19:15 ` Stelian Pop
  2004-11-05  8:58   ` Martin Waitz
  0 siblings, 1 reply; 3+ messages in thread
From: Stelian Pop @ 2004-11-04 19:15 UTC (permalink / raw)
  To: linux-kernel; +Cc: Linus Torvalds

On Thu, Nov 04, 2004 at 06:06:32PM +0100, Martin Waitz wrote:

> hi :)
> 
> kfifo_alloc tries to round up the buffer size to the next power of two.
> But it accidently uses the original size when calling kfifo_init,
> which will BUG.

Good catch, thanks.

Linus, please apply.

Stelian.
-- 
Stelian Pop <stelian@popies.net>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] kfifo_alloc buffer
  2004-11-04 19:15 ` Stelian Pop
@ 2004-11-05  8:58   ` Martin Waitz
  0 siblings, 0 replies; 3+ messages in thread
From: Martin Waitz @ 2004-11-05  8:58 UTC (permalink / raw)
  To: Stelian Pop, linux-kernel, Linus Torvalds

[-- Attachment #1: Type: text/plain, Size: 93 bytes --]

hoi :)

by the way, shouldn't kernel/kfifo.c be moved over to lib/ ?

-- 
Martin Waitz

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-11-05  8:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-11-04 17:06 [PATCH] kfifo_alloc buffer Martin Waitz
2004-11-04 19:15 ` Stelian Pop
2004-11-05  8:58   ` Martin Waitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox