freebsd-dev/sys/i386
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 Be sure to always unlock the sx lock when exiting the sysctl function. 2004-08-24 17:53:25 +00:00
bios Clarify SDT feature word bits. 2004-08-31 21:51:51 +00:00
compile
conf Add device driver support for the VIA Networking Technologies 2004-09-10 20:57:46 +00:00
cpufreq o Fix whitespace bug introduced in the previous commit. 2004-08-23 10:09:29 +00:00
i386 Use an atomic op to update the pte in pmap_protect(). This is to prevent 2004-09-12 20:20:40 +00:00
ibcs2 Regenerate after fcntl() wrappers were marked MP safe. 2004-08-24 20:24:34 +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 Optimize intr_execute_handlers() by combining the pic_disable_source() and 2004-08-02 15:31:10 +00:00
linux Regen. 2004-09-06 09:33:30 +00:00
pci Consistently use __inline instead of __inline__ as the former is an empty macro 2004-07-04 16:11:03 +00:00
svr4
Makefile