freebsd-dev/sys/amd64
Alan Cox 031102cc7b Use an atomic op to update the pte in pmap_protect(). This is to prevent
the loss of a page modified (PG_M) bit in a race between processors.

Quoting Tor:
	One scenario where the old code could cause a lost PG_M bit is a
	multithreaded linux program (or FreeBSD program using the
	linuxthreads port) where one thread was starting a subprocess.
	The thread doing fork() would call vmspace_fork(), which would then
	call vm_map_copy_entry() which would call pmap_protect() on an area
	possibly accessed by other threads.

Additionally, make the clearing of PG_M by pmap_protect() unconditional if
write permission is removed.  Previously, PG_M could persist on a read-only
unmanaged page.  That seems inconsistent and confusing.

In collaboration with: tegge@

MT5 candidate
PR: 61852
2004-09-12 20:20:40 +00:00
..
acpica Sync with i386 - get the softc via the devclass rather than caching the dev 2004-08-16 23:10:18 +00:00
amd64 Use an atomic op to update the pte in pmap_protect(). This is to prevent 2004-09-12 20:20:40 +00:00
compile Make space for compilations. 2002-07-06 02:49:07 +00:00
conf Add device driver support for the VIA Networking Technologies 2004-09-10 20:57:46 +00:00
ia32 Remove sched_free_thread() which was only used 2004-08-31 06:12:13 +00:00
include Double the number of kernel page tables for amd64 and for i386/PAE. The old 2004-09-11 01:31:26 +00:00
isa Sync with i386 - Optimize intr_execute_handlers a bit etc. 2004-08-16 23:12:30 +00:00
linux32 Give setrunqueue() and sched_add() more of a clue as to 2004-09-01 02:11:28 +00:00
pci Add missing <sys/module.h> instances which were shadowed by the nested 2004-06-03 05:58:30 +00:00
Makefile This commit adds basic support for the UFS2 filesystem. The UFS2 2002-06-21 06:18:05 +00:00