--- 2.2.13pre7/mm/page_alloc.c Wed Sep 15 17:56:39 1999 +++ 2.2.13pre7-poison/mm/page_alloc.c Wed Sep 15 17:55:35 1999 @@ -74,6 +74,13 @@ prev->next = next; } +static unsigned long poison(unsigned long addr, unsigned long order) +{ + memset((char *) addr, 0x6b, PAGE_SIZE<flags &= ~(1 << PG_referenced); + poison(PAGE_OFFSET + PAGE_SIZE * (page - mem_map), order); free_pages_ok(page - mem_map, order, PageDMA(page) ? 1 : 0); return; } @@ -166,7 +174,7 @@ area->count--; \ EXPAND(ret, map_nr, order, new_order, area); \ spin_unlock_irqrestore(&page_alloc_lock, flags); \ - return ADDRESS(map_nr); \ + return poison(ADDRESS(map_nr), (order)); \ } \ new_order++; area++; \ } while (new_order < NR_MEM_LISTS); \