Re: [PATCH] ppc64: Fix possible race with set_pte on a present PTE

From: Benjamin Herrenschmidt
Date: Thu May 27 2004 - 17:09:19 EST


On Fri, 2004-05-28 at 07:56, David Mosberger wrote:
> >>>>> On Tue, 25 May 2004 06:53:22 +0200, Andrea Arcangeli <andrea@xxxxxxx> said:
>
> >> If the "accessed" or "dirty" bits are zero, accessing/writing the
> >> page will cause a fault which will be handled in a low-level
> >> fault handler. The Linux version of these handlers simply turn
> >> on the respective bit. See daccess_bit(), iaccess_bit(), and dirty_bit()
> >> in arch/ia64/kernel/ivt.S.
>
> Andrea> so you mean, this is being set in the arch section before
> Andrea> ever reaching handle_mm_fault?
>
> Correct. The low-level fault handlers set the ACCESSED/DIRTY bits
> with an atomic compare-and-exchange (on SMP). They don't (normally)
> bubble up all the way to the Linux page-fault handler.

Same for PPC, but we still have a race where we can reach that code, see
my initial mail (typically, because your low level code, for obvious
reasons, doesn't take the mm semaphore, thus the page may have been
mapped right after you decide to go to do_page_fault and before it takes
the mm sem).

Ben.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/