NetBSD/sys/arch/x68k
mhitch 9b0f085da1 68030 and 68040 processors consider the read portion of a read-modify-write
transfer as a write to ensure the memory is writable before starting any
transfer.  The fault status information does not reflect this in the 'read'
status bit (i.e. it shows up as a read access), so faults with a RMW access
to non-writable memory was not getting the correct protection.  The page would
be read-only and the instruction would fault over and over.

A specific example is when a process forks, and the child process attempts
to execute a RMW access to a data page, which is read-only because it's CoP
Copy-On-Write.

When checking if the page needs to be writablek, also check the locked transfer
and treat any locked transfer as a write.

68060 already handled this correctly, since it has separate read and write
fault bits, and both are set on a RMW access and the trap code was checking
the write status bit.

Fixes PR#36848.
2007-09-01 21:31:55 +00:00
..
compile
conf Add pseudo-device agr to all GENERIC kernels where it might make sense 2007-06-04 08:55:18 +00:00
dev Replace to Matthew Orgass's slhci(4). 2007-08-15 03:53:08 +00:00
include Add ci_cpuid where it's missing. 2007-08-04 09:49:51 +00:00
stand Remove _ZLIB_PRIVATE that should have been removed 10 years ago. 2007-06-23 10:50:24 +00:00
usr.bin Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
usr.sbin merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
x68k 68030 and 68040 processors consider the read portion of a read-modify-write 2007-09-01 21:31:55 +00:00
Makefile