diff options
| author | Roman Zippel <zippel@linux-m68k.org> | 2002-05-03 00:03:30 -0700 |
|---|---|---|
| committer | Russell King <rmk@arm.linux.org.uk> | 2002-05-03 00:03:30 -0700 |
| commit | 5528f050dc6302b7f3cf66b97c5426f25ecfc6cc (patch) | |
| tree | ec3dedf4b740349f246460fcbb5e2698da1741ae /mm/slab.c | |
| parent | 31efb48daafb03968411eb62e456df22796a8c9e (diff) | |
[PATCH] 2.5.13: remove VALID_PAGE
This patch removes VALID_PAGE(), as the test was always too late for
discontinous memory configuration. It is replaced with pfn_valid()/
virt_addr_valid(), which are used to test the original input value.
Other helper functions:
pte_pfn() - extract the page number from a pte
pfn_to_page()/page_to_pfn() - convert a page number to/from a page struct
Diffstat (limited to 'mm/slab.c')
| -rw-r--r-- | mm/slab.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/mm/slab.c b/mm/slab.c index d5e2817db02d..99b7559849f6 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -1415,15 +1415,16 @@ alloc_new_slab_nolock: #if DEBUG # define CHECK_NR(pg) \ do { \ - if (!VALID_PAGE(pg)) { \ + if (!virt_addr_valid(pg)) { \ printk(KERN_ERR "kfree: out of range ptr %lxh.\n", \ (unsigned long)objp); \ BUG(); \ } \ } while (0) -# define CHECK_PAGE(page) \ +# define CHECK_PAGE(addr) \ do { \ - CHECK_NR(page); \ + struct page *page = virt_to_page(addr); \ + CHECK_NR(addr); \ if (!PageSlab(page)) { \ printk(KERN_ERR "kfree: bad ptr %lxh.\n", \ (unsigned long)objp); \ @@ -1439,7 +1440,7 @@ static inline void kmem_cache_free_one(kmem_cache_t *cachep, void *objp) { slab_t* slabp; - CHECK_PAGE(virt_to_page(objp)); + CHECK_PAGE(objp); /* reduces memory footprint * if (OPTIMIZE(cachep)) @@ -1519,7 +1520,7 @@ static inline void __kmem_cache_free (kmem_cache_t *cachep, void* objp) #ifdef CONFIG_SMP cpucache_t *cc = cc_data(cachep); - CHECK_PAGE(virt_to_page(objp)); + CHECK_PAGE(objp); if (cc) { int batchcount; if (cc->avail < cc->limit) { @@ -1601,7 +1602,7 @@ void kmem_cache_free (kmem_cache_t *cachep, void *objp) { unsigned long flags; #if DEBUG - CHECK_PAGE(virt_to_page(objp)); + CHECK_PAGE(objp); if (cachep != GET_PAGE_CACHE(virt_to_page(objp))) BUG(); #endif @@ -1626,7 +1627,7 @@ void kfree (const void *objp) if (!objp) return; local_irq_save(flags); - CHECK_PAGE(virt_to_page(objp)); + CHECK_PAGE(objp); c = GET_PAGE_CACHE(virt_to_page(objp)); __kmem_cache_free(c, (void*)objp); local_irq_restore(flags); |
