From 24fd7410866af01595a33a18dd681227ed4ce0f9 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 13 Mar 2009 06:30:52 +0100 Subject: [PATCH] --- yaml --- r: 140947 b: refs/heads/master c: d2e82546ae98eee353fae57e389f487586fe380d h: refs/heads/master i: 140945: 72273fc247aa6a49e15158d77fe652b830bfdeeb 140943: 9dd465691df068a06ec072f3af7157f2c3e7c399 v: v3 --- [refs] | 2 +- trunk/Makefile | 2 +- trunk/lib/bitmap.c | 16 ++++++++-------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 4f2ff08337db..18b514022e67 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 899039e8746bb9a09b6487ddb8ab2275ce9d0256 +refs/heads/master: d2e82546ae98eee353fae57e389f487586fe380d diff --git a/trunk/Makefile b/trunk/Makefile index 69b8091bfed1..46c04c546ee2 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 29 -EXTRAVERSION = -rc7 +EXTRAVERSION = -rc8 NAME = Erotic Pickled Herring # *DOCUMENTATION* diff --git a/trunk/lib/bitmap.c b/trunk/lib/bitmap.c index 1338469ac849..35a1f7ff4149 100644 --- a/trunk/lib/bitmap.c +++ b/trunk/lib/bitmap.c @@ -948,15 +948,15 @@ static int __reg_op(unsigned long *bitmap, int pos, int order, int reg_op) */ int bitmap_find_free_region(unsigned long *bitmap, int bits, int order) { - int pos; /* scans bitmap by regions of size order */ + int pos, end; /* scans bitmap by regions of size order */ - for (pos = 0; pos < bits; pos += (1 << order)) - if (__reg_op(bitmap, pos, order, REG_OP_ISFREE)) - break; - if (pos == bits) - return -ENOMEM; - __reg_op(bitmap, pos, order, REG_OP_ALLOC); - return pos; + for (pos = 0 ; (end = pos + (1 << order)) <= bits; pos = end) { + if (!__reg_op(bitmap, pos, order, REG_OP_ISFREE)) + continue; + __reg_op(bitmap, pos, order, REG_OP_ALLOC); + return pos; + } + return -ENOMEM; } EXPORT_SYMBOL(bitmap_find_free_region);