projects
/
platform
/
kernel
/
linux-stable.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
d509b1d
)
x86/asm/traps: Disable tracing and kprobes in fixup_bad_iret and sync_regs
author
Andy Lutomirski
<luto@amacapital.net>
Tue, 25 Nov 2014 01:39:06 +0000
(17:39 -0800)
committer
Greg Kroah-Hartman
<gregkh@linuxfoundation.org>
Fri, 30 Jan 2015 01:40:56 +0000
(17:40 -0800)
commit
7ddc6a2199f1da405a2fb68c40db8899b1a8cd87
upstream.
These functions can be executed on the int3 stack, so kprobes
are dangerous. Tracing is probably a bad idea, too.
Fixes:
b645af2d5905
("x86_64, traps: Rework bad_iret")
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link:
http://lkml.kernel.org/r/50e33d26adca60816f3ba968875801652507d0c4.1416870125.git.luto@amacapital.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
[bwh: Backported to 3.10:
- Use __kprobes instead of NOKPROBE_SYMBOL()
- Adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kernel/traps.c
patch
|
blob
|
history
diff --git
a/arch/x86/kernel/traps.c
b/arch/x86/kernel/traps.c
index
332cafe
..
0010ed7
100644
(file)
--- a/
arch/x86/kernel/traps.c
+++ b/
arch/x86/kernel/traps.c
@@
-362,7
+362,7
@@
exit:
* for scheduling or signal handling. The actual stack switch is done in
* entry.S
*/
-asmlinkage __kprobes struct pt_regs *sync_regs(struct pt_regs *eregs)
+asmlinkage
notrace
__kprobes struct pt_regs *sync_regs(struct pt_regs *eregs)
{
struct pt_regs *regs = eregs;
/* Did already sync */
@@
-387,7
+387,7
@@
struct bad_iret_stack {
struct pt_regs regs;
};
-asmlinkage __visible
+asmlinkage __visible
notrace __kprobes
struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s)
{
/*