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/

Reply via email to