Staging
v0.5.1
https://github.com/torvalds/linux
Revision 86d43258bcad2068744c85181b97bb35ab27a74d authored by David S. Miller on 27 January 2007, 02:48:16 UTC, committed by David S. Miller on 27 January 2007, 02:56:01 UTC
Mirror the logic in the sun4u handler, we have to update
both registers even when we branch out to window fault
fixup handling.

The way it works is that if we are in etrap processing a
fault already, g4/g5 holds the original fault information.
If we take a window spill fault while doing etrap, then
we put the window spill fault info into g4/g5 and this is
what the top-level fault handler ends up processing first.

Then we retry the originally faulting instruction, and
process the original fault at that time.

This is all necessary because of how constrained the trap
registers are in these code paths.  These cases trigger
very rarely, so even if there is some performance implication
it's doesn't happen very often.  In fact the rarity is why
it took so long to trigger and find this particular bug.

Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent c229ec5
History
Tip revision: 86d43258bcad2068744c85181b97bb35ab27a74d authored by David S. Miller on 27 January 2007, 02:48:16 UTC
[SPARC64]: Set g4/g5 properly in sun4v dtlb-prot handling.
Tip revision: 86d4325
File Mode Size
Documentation
arch
block
crypto
drivers
fs
include
init
ipc
kernel
lib
mm
net
scripts
security
sound
usr
.gitignore -rw-r--r-- 572 bytes
COPYING -rw-r--r-- 18.3 KB
CREDITS -rw-r--r-- 88.5 KB
Kbuild -rw-r--r-- 1.2 KB
MAINTAINERS -rw-r--r-- 80.1 KB
Makefile -rw-r--r-- 49.1 KB
README -rw-r--r-- 16.5 KB
REPORTING-BUGS -rw-r--r-- 3.0 KB

README

back to top