Unsafe pte_update() in do_page_fault() (4xx and Book-E)
Benjamin Herrenschmidt
benh at kernel.crashing.org
Fri Mar 3 14:43:02 EST 2006
> If this happens, pte_update() sets _PAGE_HWEXEC bit in just cleared
> PTE. Sometime later, another page fault happens for this page, but
> because of that set bit, pte_none() test in handle_pte_fault() fails,
> and we continue along the wrong path, thinking that this PTE was
> swapped out to the swap file, and this triggers swap_dup error I
> mentioned at the beginning.
Can we preempt at that point ? As tehre is no SMP 4xx that I know of
preempt would be the only cause for such a race ...
Ben.
More information about the Linuxppc-dev
mailing list