Roland McGrath
54a0151041
asmlinkage_protect replaces prevent_tail_call
...
The prevent_tail_call() macro works around the problem of the compiler
clobbering argument words on the stack, which for asmlinkage functions
is the caller's (user's) struct pt_regs. The tail/sibling-call
optimization is not the only way that the compiler can decide to use
stack argument words as scratch space, which we have to prevent.
Other optimizations can do it too.
Until we have new compiler support to make "asmlinkage" binding on the
compiler's own use of the stack argument frame, we have work around all
the manifestations of this issue that crop up.
More cases seem to be prevented by also keeping the incoming argument
variables live at the end of the function. This makes their original
stack slots attractive places to leave those variables, so the compiler
tends not clobber them for something else. It's still no guarantee, but
it handles some observed cases that prevent_tail_call() did not.
Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-04-10 17:28:26 -07:00
..
acpi
ACPI, cpuidle: Clarify C-state description in sysfs
2008-02-14 00:09:55 -05:00
asm-alpha
alpha: get_current(): don't add zero to current_thread_info()->task
2008-04-02 15:28:20 -07:00
asm-arm
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-avr32
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-blackfin
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-cris
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-frv
FRV: Don't make smp_{r, w, }mb() interpolate MEMBAR when CONFIG_SMP=n [try #2 ]
2008-04-10 13:41:29 -07:00
asm-generic
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-h8300
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-ia64
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-m32r
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-m68k
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-m68knommu
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-mips
[MIPS] Handle aliases in vmalloc correctly.
2008-04-07 22:31:04 +01:00
asm-mn10300
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-parisc
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-powerpc
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-ppc
[PPC] 8xx: swap bug-fix
2008-03-07 16:56:54 -06:00
asm-s390
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-sh
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-sparc
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-sparc64
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-um
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-v850
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
asm-x86
asmlinkage_protect replaces prevent_tail_call
2008-04-10 17:28:26 -07:00
asm-xtensa
kvm: provide kvm.h for all architecture: fixes headers_install
2008-04-02 15:28:18 -07:00
crypto
[CRYPTO] skcipher: Fix section mismatches
2008-03-08 20:29:43 +08:00
keys
linux
asmlinkage_protect replaces prevent_tail_call
2008-04-10 17:28:26 -07:00
math-emu
media
V4L/DVB (7192): Adds support for Genius TVGo A11MCE
2008-02-18 11:15:19 -03:00
mtd
net
[LLC]: skb allocation size for responses
2008-03-31 21:02:47 -07:00
pcmcia
rdma
IB/core: Remove unused struct ib_device.flags member
2008-02-08 14:47:26 -08:00
rxrpc
scsi
[SCSI] iscsi class: regression - fix races with state manipulation and blocking/unblocking
2008-03-05 12:04:09 -06:00
sound
[ALSA] opl3 - Fix compilation without sequencer support
2008-02-22 14:20:08 -08:00
video
xen
Kbuild