diff -urN v2.4.9-ac16/mm/memory.c foo/mm/memory.c --- v2.4.9-ac16/mm/memory.c Thu Sep 27 16:00:16 2001 +++ foo/mm/memory.c Thu Sep 27 16:03:36 2001 @@ -296,7 +296,9 @@ if (pte_none(pte)) continue; if (pte_present(pte)) { - freed ++; + struct page *page = pte_page(pte); + if (VALID_PAGE(page) && !PageReserved(page)) + freed ++; /* This will eventually call __free_pte on the pte. */ tlb_remove_page(tlb, ptep, address + offset); } else {