Short of getting a reply on the query why the argument of fls() here is missing the decrement, here's a patch to add it (reducing the resulting size when the incoming size is an exact power of two).
Signed-off-by: Jan Beulich <[EMAIL PROTECTED]> Cc: James Bottomley <[EMAIL PROTECTED]> --- mm/vmalloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- linux-2.6.24-rc7/mm/vmalloc.c 2008-01-10 16:50:54.000000000 +0100 +++ 2.6.24-rc7-vm-ioremap-size/mm/vmalloc.c 2008-01-08 12:35:11.000000000 +0100 @@ -176,7 +176,7 @@ static struct vm_struct *__get_vm_area_n BUG_ON(in_interrupt()); if (flags & VM_IOREMAP) { - int bit = fls(size); + int bit = fls(size - 1); if (bit > IOREMAP_MAX_ORDER) bit = IOREMAP_MAX_ORDER; -- 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/