aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2008-02-05 01:28:34 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-05 12:44:14 -0500
commit9e2779fa281cfda13ac060753d674bbcaa23367e (patch)
treee2af17d69b71e0f8b3f00fe949cb8abfba4298ed /mm
parent0b7a96114bd5991d355a1f1c1d3d9c0c9d9c1cfc (diff)
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>
Diffstat (limited to 'mm')
-rw-r--r--mm/sparse.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/mm/sparse.c b/mm/sparse.c
index a2183cb5d524..7859c8083334 100644
--- a/mm/sparse.c
+++ b/mm/sparse.c
@@ -353,17 +353,9 @@ static inline struct page *kmalloc_section_memmap(unsigned long pnum, int nid,
353 return __kmalloc_section_memmap(nr_pages); 353 return __kmalloc_section_memmap(nr_pages);
354} 354}
355 355
356static int vaddr_in_vmalloc_area(void *addr)
357{
358 if (addr >= (void *)VMALLOC_START &&
359 addr < (void *)VMALLOC_END)
360 return 1;
361 return 0;
362}
363
364static void __kfree_section_memmap(struct page *memmap, unsigned long nr_pages) 356static void __kfree_section_memmap(struct page *memmap, unsigned long nr_pages)
365{ 357{
366 if (vaddr_in_vmalloc_area(memmap)) 358 if (is_vmalloc_addr(memmap))
367 vfree(memmap); 359 vfree(memmap);
368 else 360 else
369 free_pages((unsigned long)memmap, 361 free_pages((unsigned long)memmap,