Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Tue, 23 Jul 2002 13:08:49 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Tue, 23 Jul 2002 13:05:48 -0400 Received: from garrincha.netbank.com.br ([200.203.199.88]:20231 "HELO garrincha.netbank.com.br") by vger.kernel.org with SMTP id ; Tue, 23 Jul 2002 13:05:11 -0400 Date: Tue, 23 Jul 2002 14:07:41 -0300 (BRT) From: Rik van Riel X-X-Sender: riel@imladris.surriel.com To: Linus Torvalds cc: Andrew Morton , , , , Craig Kulesa Subject: [PATCH] urgent rmap bugfix Message-ID: X-spambait: aardvark@kernelnewbies.org X-spammeplease: aardvark@nl.linux.org MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1125 Lines: 38 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/