summaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/hw_breakpoint.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-08-14 01:19:44 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2015-08-14 01:19:44 +0200
commitcd88ec2317015f9ae94fa55149bc6f61e1a460e9 (patch)
tree6f5e066cfb60b8d6dfb1a9b806e69cdfd7c1a3c2 /arch/arm/kernel/hw_breakpoint.c
parentMerge tag 'dm-4.2-fixes-5' of git://git.kernel.org/pub/scm/linux/kernel/git/d... (diff)
downloadlinux-cd88ec2317015f9ae94fa55149bc6f61e1a460e9.tar.xz
linux-cd88ec2317015f9ae94fa55149bc6f61e1a460e9.zip
x86: fix error handling for 32-bit compat out-of-range system call numbers
Commit 3f5159a9221f ("x86/asm/entry/32: Update -ENOSYS handling to match the 64-bit logic") broke the ENOSYS handling for the 32-bit compat case. The proper error return value was never loaded into %rax, except if things just happened to go through the audit paths, which ended up reloading the return value. This moves the loading or %rax into the normal system call path, just to make sure the error case triggers it. It's kind of sad, since it adds a useless instruction to reload the register to the fast path, but it's not like that single load from the stack is going to be noticeable. Reported-by: David Drysdale <drysdale@google.com> Tested-by: Kees Cook <keescook@chromium.org> Acked-by: Andy Lutomirski <luto@amacapital.net> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: Ingo Molnar <mingo@kernel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/arm/kernel/hw_breakpoint.c')
0 files changed, 0 insertions, 0 deletions