is_vmalloc_addr(): Check if an address is within the vmalloc boundaries
Checking if an address is a vmalloc address is done in a couple of places. Define a common version in mm.h and replace the other checks. Again the include structures suck. The definition of VMALLOC_START and VMALLOC_END is not available in vmalloc.h since highmem.c cannot be included there. Signed-off-by: Christoph Lameter <clameter@sgi.com> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
0b7a96114b
commit
9e2779fa28
10
mm/sparse.c
10
mm/sparse.c
@@ -353,17 +353,9 @@ static inline struct page *kmalloc_section_memmap(unsigned long pnum, int nid,
|
||||
return __kmalloc_section_memmap(nr_pages);
|
||||
}
|
||||
|
||||
static int vaddr_in_vmalloc_area(void *addr)
|
||||
{
|
||||
if (addr >= (void *)VMALLOC_START &&
|
||||
addr < (void *)VMALLOC_END)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __kfree_section_memmap(struct page *memmap, unsigned long nr_pages)
|
||||
{
|
||||
if (vaddr_in_vmalloc_area(memmap))
|
||||
if (is_vmalloc_addr(memmap))
|
||||
vfree(memmap);
|
||||
else
|
||||
free_pages((unsigned long)memmap,
|
||||
|
Reference in New Issue
Block a user