diff options
| -rw-r--r-- | include/linux/vmalloc.h | 2 | ||||
| -rw-r--r-- | mm/vmalloc.c | 4 | 
2 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h index 227c2a585e4..b840fdaf438 100644 --- a/include/linux/vmalloc.h +++ b/include/linux/vmalloc.h @@ -7,6 +7,8 @@  struct vm_area_struct;		/* vma defining user mapping in mm_types.h */ +extern bool vmap_lazy_unmap; +  /* bits in flags of vmalloc's vm_struct below */  #define VM_IOREMAP	0x00000001	/* ioremap() and friends */  #define VM_ALLOC	0x00000002	/* vmalloc() */ diff --git a/mm/vmalloc.c b/mm/vmalloc.c index ae007462b7f..7f35fe2cf9e 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -31,6 +31,7 @@  #include <asm/tlbflush.h>  #include <asm/shmparam.h> +bool vmap_lazy_unmap __read_mostly = true;  /*** Page table manipulation functions ***/ @@ -502,6 +503,9 @@ static unsigned long lazy_max_pages(void)  {  	unsigned int log; +	if (!vmap_lazy_unmap) +		return 0; +  	log = fls(num_online_cpus());  	return log * (32UL * 1024 * 1024 / PAGE_SIZE);  |