1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-23 11:18:54 +00:00
freebsd/sys
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
..
alpha Add nge. (I've used one for about a week in an XP1000.) 2004-09-11 07:26:50 +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
arm Fix a problem with tag->boundary inheritence that has existed since day one 2004-09-08 04:54:19 +00:00
boot Back out v1.24. v1.40 of sys/sparc64/sparc64/bus_machdep.c fixes the 2004-09-08 12:52:45 +00:00
cam For removable devices without media we set a zero mediasize but a non-zero 2004-09-05 21:15:58 +00:00
coda General modernization of coda: 2004-09-01 01:19:52 +00:00
compat Regenerate after fcntl() wrappers were marked MP safe. 2004-08-24 20:24:34 +00:00
conf Typo fix. 2004-09-12 12:13:29 +00:00
contrib One more round on the H/W supported checksum code: Fix NICs that can't do 2004-09-11 11:18:25 +00:00
crypto
ddb Refactor a bunch of scheduler code to give basically the same behaviour 2004-09-05 02:09:54 +00:00
dev Change sb_lock() calls to sbc_lockassert() and remove the sb_unlock() 2004-09-12 18:19:42 +00:00
doc Experimental support for using doxygen to generate kernel documentation. 2004-07-11 16:13:57 +00:00
fs Reduce the size of struct defid's defid_dirclust, defid_dirofs and 2004-09-08 13:03:19 +00:00
gdb Comment-out the debugging printf I left in in case there were some 2004-08-10 19:32:33 +00:00
geom Fix a problem that shows up if less than the full complement of 2004-09-11 17:58:53 +00:00
gnu Create simple function init_va_filerev() for initializing a va_filerev 2004-09-07 09:17:05 +00:00
i4b Kill count device support from config. I've changed the last few 2004-08-30 23:03:58 +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
ia64 Catch up with other platforms: switch the default scheduler to 4BSD. 2004-09-12 05:50:32 +00:00
isa Improve sync recovery algorithm: 2004-08-27 21:25:16 +00:00
isofs/cd9660 Temporarily back out revision 1.77. This changed cd9660_getattr() and 2004-09-05 11:18:53 +00:00
kern Revert the previous round of changes to td_pinned. The scheduler isn't 2004-09-11 10:07:22 +00:00
libkern Move the kernel-specific logic to adjust frompc from MI to MD. For 2004-08-27 19:42:35 +00:00
modules Add device driver support for the VIA Networking Technologies 2004-09-10 20:57:46 +00:00
net Reformulate bpf_dettachd() to acquire the BIF_LOCK() as well as 2004-09-09 04:11:12 +00:00
net80211 Add a new network interface flag, IFF_NEEDSGIANT, which will allow 2004-07-27 23:20:45 +00:00
netatalk Inline umich license from COPYRIGHT to make it clear what license the 2004-08-10 03:23:05 +00:00
netatm Avoid casts as lvalues. 2004-07-28 06:59:55 +00:00
netgraph Remove orphaned comment about Meta data. 2004-09-11 08:59:06 +00:00
netinet Check flag do_bridge always, even if kernel was compiled without 2004-09-09 12:34:07 +00:00
netinet6 Call callout_init() on nd6_slowtimo_ch before setting it going; otherwise, 2004-09-05 17:27:54 +00:00
netipsec Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
netipx Mark Netgraph TTY, KAME IPSEC, and IPX/SPX as requiring Giant for correct 2004-08-28 15:24:53 +00:00
netkey The KAME IPSEC implementation at one point used its own pseudo-random 2004-09-02 20:14:03 +00:00
netnatm
netncp
netsmb Avoid casts as lvalues. 2004-07-28 06:59:55 +00:00
nfs
nfs4client Explicitly pass vnode to nfs_doio() and mountpoint to nfs_asyncio(). 2004-09-07 08:56:43 +00:00
nfsclient Explicitly pass vnode to nfs_doio() and mountpoint to nfs_asyncio(). 2004-09-07 08:56:43 +00:00
nfsserver Convert a mtx_lock(&Giant) to a mtx_unlock(&Giant) in nfsrv_link() to 2004-08-25 16:52:59 +00:00
opencrypto Don't acquire Giant in cryptof_close(), as the code is intended to be 2004-08-10 03:26:17 +00:00
pc98 Add device driver support for the VIA Networking Technologies 2004-09-10 20:57:46 +00:00
pccard Move PNP IDs back into oldcard files 2004-08-13 06:57:31 +00:00
pci Fix oversight reported by Norikatsu Shigemura for the "sym" driver 2004-09-10 19:35:44 +00:00
posix4
powerpc Fix a problem with tag->boundary inheritence that has existed since day one 2004-09-08 04:54:19 +00:00
rpc fix array index out of bounds in rpc->rc_srtt[], rpc->rc_sdrtt[] 2004-07-15 22:21:25 +00:00
security Remove the debugging tunable, it was not being used. 2004-09-10 15:14:50 +00:00
sparc64 Better fix the busdma problem exposed by ATA. With the CMD 646 for 2004-09-10 07:00:28 +00:00
sys Revert the previous round of changes to td_pinned. The scheduler isn't 2004-09-11 10:07:22 +00:00
tools Pass doxygen doc comments through to the output. 2004-07-11 16:14:24 +00:00
ufs Create simple function init_va_filerev() for initializing a va_filerev 2004-09-07 09:17:05 +00:00
vm System maps are prohibited from mapping vnode-backed objects. Take 2004-09-11 18:49:59 +00:00
Makefile Add a NO_BOOT knob to prevent building the boot blocks and loader. 2004-08-19 09:54:28 +00:00