aboutsummaryrefslogtreecommitdiff
path: root/mm
diff options
context:
space:
mode:
authorZhang Yanfei <zhangyanfei@cn.fujitsu.com>2013-07-08 15:59:54 -0700
committerMoyster <oysterized@gmail.com>2019-05-02 21:33:55 +0200
commitf7f92736592211b56cb30a73177cabfd42e307d0 (patch)
tree0f10952a99453b357f9ab2c10292638fe9f7109c /mm
parent681d140c7dfac4ad5c73e8b6672335b05f9d74e1 (diff)
mm/vmalloc.c: remove dead code in vb_alloc
Space in a vmap block that was once allocated is considered dirty and not made available for allocation again before the whole block is recycled. The result is that free space within a vmap block is always contiguous. So if a vmap block has enough free space for allocation, the allocation is impossible to fail. Thus, the fragmented block purging was never invoked from vb_alloc(). So remove this dead code. [ Same patches also sent by: Chanho Min <chanho.min@lge.com> Johannes Weiner <hannes@cmpxchg.org> but git doesn't do "multiple authors" ] Signed-off-by: Zhang Yanfei <zhangyanfei@cn.fujitsu.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Mel Gorman <mel@csn.ul.ie> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Change-Id: Ia406f64ff51247f6643cb469bf8b3ca5a603abdf (cherry picked from commit c920b64e6ab415e78ffd3805f76af96ec7a6636e)
Diffstat (limited to 'mm')
-rw-r--r--mm/vmalloc.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index f94d4c5b0..dab60d905 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -959,13 +959,8 @@ again:
int i;
spin_lock(&vb->lock);
- if (vb->free < 1UL << order) {
- if (vb->free + vb->dirty == VMAP_BBMAP_BITS && vb->dirty != VMAP_BBMAP_BITS) {
- /* free left too small, handle as fragmented scenario */
- purge = 1;
- }
+ if (vb->free < 1UL << order)
goto next;
- }
i = VMAP_BBMAP_BITS - vb->free;
addr = vb->va->va_start + (i << PAGE_SHIFT);