Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: [netbsd-4] src/sys/arch



Module Name:    src
Committed By:   msaitoh
Date:           Tue Sep 11 08:01:39 UTC 2007

Modified Files:
        src/sys/arch/amiga/amiga [netbsd-4]: trap.c
        src/sys/arch/atari/atari [netbsd-4]: trap.c
        src/sys/arch/cesfic/cesfic [netbsd-4]: trap.c
        src/sys/arch/hp300/hp300 [netbsd-4]: trap.c
        src/sys/arch/luna68k/luna68k [netbsd-4]: trap.c
        src/sys/arch/mac68k/mac68k [netbsd-4]: trap.c
        src/sys/arch/mvme68k/mvme68k [netbsd-4]: trap.c
        src/sys/arch/news68k/news68k [netbsd-4]: trap.c
        src/sys/arch/next68k/next68k [netbsd-4]: trap.c
        src/sys/arch/sun3/sun3 [netbsd-4]: trap.c
        src/sys/arch/x68k/x68k [netbsd-4]: trap.c

Log Message:
Pull up following revision(s) (requested by mhitch in ticket #866):
        sys/arch/atari/atari/trap.c:            1.92
        sys/arch/mac68k/mac68k/trap.c:          1.129
        sys/arch/amiga/amiga/trap.c:            1.116
        sys/arch/mvme68k/mvme68k/trap.c:        1.91
        sys/arch/news68k/news68k/trap.c:        1.54
        sys/arch/sun3/sun3/trap.c:              1.131
        sys/arch/next68k/next68k/trap.c:        1.68
        sys/arch/luna68k/luna68k/trap.c:        1.47
        sys/arch/cesfic/cesfic/trap.c:          1.36
        sys/arch/x68k/x68k/trap.c:              1.90
        sys/arch/hp300/hp300/trap.c:            1.132
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.


To generate a diff of this commit:
cvs rdiff -r1.110.8.1 -r1.110.8.2 src/sys/arch/amiga/amiga/trap.c
cvs rdiff -r1.84.8.1 -r1.84.8.2 src/sys/arch/atari/atari/trap.c
cvs rdiff -r1.29.8.1 -r1.29.8.2 src/sys/arch/cesfic/cesfic/trap.c
cvs rdiff -r1.125.8.1 -r1.125.8.2 src/sys/arch/hp300/hp300/trap.c
cvs rdiff -r1.39.8.1 -r1.39.8.2 src/sys/arch/luna68k/luna68k/trap.c
cvs rdiff -r1.121.8.1 -r1.121.8.2 src/sys/arch/mac68k/mac68k/trap.c
cvs rdiff -r1.85.8.1 -r1.85.8.2 src/sys/arch/mvme68k/mvme68k/trap.c
cvs rdiff -r1.47.8.1 -r1.47.8.2 src/sys/arch/news68k/news68k/trap.c
cvs rdiff -r1.61.8.1 -r1.61.8.2 src/sys/arch/next68k/next68k/trap.c
cvs rdiff -r1.126.8.1 -r1.126.8.2 src/sys/arch/sun3/sun3/trap.c
cvs rdiff -r1.82.8.1 -r1.82.8.2 src/sys/arch/x68k/x68k/trap.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index