git.openpandora.org
/
pandora-kernel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0f90e98
)
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
Ben Hutchings
<ben@decadent.org.uk>
Sun, 14 Dec 2014 16:24:00 +0000
(16:24 +0000)
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.2:
- Use __kprobes instead of NOKPROBE_SYMBOL()
- Don't use __visible]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/x86/kernel/traps.c
patch
|
blob
|
history
diff --git
a/arch/x86/kernel/traps.c
b/arch/x86/kernel/traps.c
index
56d013f
..
2aff347
100644
(file)
--- a/
arch/x86/kernel/traps.c
+++ b/
arch/x86/kernel/traps.c
@@
-344,7
+344,7
@@
dotraplinkage void __kprobes do_int3(struct pt_regs *regs, long error_code)
* 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 */
@@
-369,7
+369,7
@@
struct bad_iret_stack {
struct pt_regs regs;
};
-asmlinkage
+asmlinkage
notrace __kprobes
struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s)
{
/*