Revision e88d2468718b0789b4c33da2f7e1cef2a1eee279 authored by David S. Miller on 15 November 2011, 20:57:00 UTC, committed by David S. Miller on 15 November 2011, 20:57:00 UTC
As per the comments added by this commit, %g2 turns out to not be a usable place to save away orig_i0 for syscall restart handling. In fact all of %g2, %g3, %g4, and %g5 are assumed to be saved across a system call by various bits of code in glibc. %g1 can't be used because that holds the syscall number, which would need to be saved and restored for syscall restart handling too, and that would only compound our problems :-) This leaves us with %g6 and %g7 which are for "system use". %g7 is used as the "thread register" by glibc, but %g6 is used as a compiler and assembler temporary scratch register. And in no instance is %g6 used to hold a value across a system call. Therefore %g6 is safe for storing away orig_i0, at least for now. Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 1d299bc
File | Mode | Size |
---|---|---|
Kconfig | -rw-r--r-- | 44.5 KB |
Makefile | -rw-r--r-- | 1.0 KB |
calibrate.c | -rw-r--r-- | 7.9 KB |
do_mounts.c | -rw-r--r-- | 12.0 KB |
do_mounts.h | -rw-r--r-- | 1.4 KB |
do_mounts_initrd.c | -rw-r--r-- | 3.1 KB |
do_mounts_md.c | -rw-r--r-- | 7.9 KB |
do_mounts_rd.c | -rw-r--r-- | 8.4 KB |
initramfs.c | -rw-r--r-- | 12.6 KB |
main.c | -rw-r--r-- | 20.3 KB |
noinitramfs.c | -rw-r--r-- | 1.5 KB |
version.c | -rw-r--r-- | 1.1 KB |
Computing file changes ...