On Fri, 30 May 2008, Arjan van de Ven wrote:That's just _odd_. The call chain actually has kmap() in it, and kmap does: if (!PageHighMem(page)) return page_address(page); return kmap_high(page); so if it's the one at line 319, which says BUG_ON(!PageHighMem(page)); then I wonder what happened to that PageHighMem() test of the page in between.. Ahh.. Not the same "page". It looks like it's in the flush_all_zero_pkmaps() path, and it's clearing some _other_ page in the pkmap table in order to make room for the new one. So the page that causes problems is from here: page = pte_page(pkmap_page_table[i]); rather than the one we're trying to map. Not that it explains the BUG_ON(). We should only insert page table entries into the pkmap_page_table[] array in map_new_virtual(), which in turn is only called from kmap_high(), which in turn means that *those* pages have also gine through the PageHighMem() test. So it sounds like we either - have corruption in pkmap_page_table[] - or pte_page() doesn't reverse mk_pte(page) propely, and one or the other is broken. Does anybody know if the fc9 x86-32 kernel is built with PAE enabled? Might this be another PAE bit-masking bug and thus possibly fixed by the PTE_MASK changes? Linus --
| Rafael J. Wysocki | [Bug #10984] MMC print trace information when resume from suspend |
| Steven Rostedt | Re: [RFC PATCH 1/3] Unified trace buffer |
| Karl Meyer | PROBLEM: 2.6.23-rc "NETDEV WATCHDOG: eth0: transmit timed out" |
| Ingo Molnar | Re: [PATCH] x86: make e820.c to have common functions |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Woodhouse | Re: [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Andi Kleen | Re: [PATCH] Add IPv6 support to TCP SYN cookies |
| Andi Kleen | Re: [PATCH] Disable TSO for non standard qdiscs |
git: | |
