Description: Fix infinite recursion when alignment passed is 0 in function aligned_kmalloc(), in file drivers/atm/firestream.c. Also, a negative value for alignment does not make sense. Check for negative value too. The function prototype is: static void __devinit *aligned_kmalloc (int size, gfp_t flags, int alignment).
Signed-off-by: Amit Choudhary <[EMAIL PROTECTED]> diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c index 9c67df5..2ba6b2e 100644 --- a/drivers/atm/firestream.c +++ b/drivers/atm/firestream.c @@ -1385,7 +1385,7 @@ static void __devinit *aligned_kmalloc ( if (alignment <= 0x10) { t = kmalloc (size, flags); - if ((unsigned long)t & (alignment-1)) { + if ((unsigned long)t & ((alignment <= 0) ? 0 : (alignment-1))) { printk ("Kmalloc doesn't align things correctly! %p\n", t); kfree (t); return aligned_kmalloc (size, flags, alignment * 4); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/