summaryrefslogtreecommitdiff
path: root/include/linux/sysdev.h
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2004-12-20 00:06:46 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-12-20 00:06:46 -0800
commit0233f53fa39d43e2f923c3485502b0461cecc0d7 (patch)
tree7170d59511adac8775187b8d993723f02560bacd /include/linux/sysdev.h
parent39509e479c8ed347452d4ebc75edad6a20216490 (diff)
[PATCH] x86_64: fix syscall/signal restart bug
Fix a pretty bad bug that caused sometimes signals on x86-64 to be restarted like system calls. This corrupted the RIP and in general caused undesirable effects. The problem happens because orig_rax is unsigned on x86-64, but it originally was signed when the signal code was written. And the if (orig_rax >= 0) ended up always true. And gcc didn't warn about this, because the warning is only in -Wextra. In 2.4 we still had a cast for it, but somehow it got dropped in 2.5. Credit goes to John Slice for tracking it down and Erich Boleyn for the original fix. All blame to me. I fixed it at another place too. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/sysdev.h')
0 files changed, 0 insertions, 0 deletions