Hi,
it turns out there was a subtle bug in Craig Kulesa's port of
the rmap patch to 2.5, which is only apparent on non-x86 machines
where pfn 0 isn't valid.
The problem was that zap_pte_range() would clear the pte before
page_remove_rmap() would get called. This means that on these
machines the pte chain would never be removed and the machine
would oops at page_alloc.c line 98...
Thanks to Russell King for helping track down this bug.
please apply,
Rik
-- Bravely reimplemented by the knights who say "NIH".===== mm/rmap.c 1.3 vs edited ===== --- 1.3/mm/rmap.c Tue Jul 16 18:46:30 2002 +++ edited/mm/rmap.c Tue Jul 23 14:01:23 2002 @@ -163,7 +163,7 @@ void page_remove_rmap(struct page * page, pte_t * ptep) { struct pte_chain * pc, * prev_pc = NULL; - unsigned long pfn = pte_pfn(*ptep); + unsigned long pfn = page_to_pfn(page);
if (!page || !ptep) BUG();
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Tue Jul 23 2002 - 22:00:43 EST