x86_64, traps: always true condition
Subsystems (2)
PATCH v2 1/1 x86_64, traps: always true condition
We should be checking IS_ERR() here. PTR_ERR() is always true.
---
v2: Use correct fixes tag.
arch/x86/kernel/traps.c +1 -1
@@ -331,7 +331,7 @@ dotraplinkage void do_bounds(struct pt_regs *regs, long error_code)break ;/* Success, it was handled */ case 1 :/* Bound violation. */ info =mpx_generate_siginfo (regs, xsave_buf); -if (PTR_ERR (info)) { +if (IS_ERR (info)) {/* * We failed to decode the MPX instruction. Act as if * the exception was not caused by MPX.
Quoted 12 lines · Dan Carpenter
We should be checking
IS_ERR()here.PTR_ERR()is always true.Fixes fe3d197f8431 ('x86, mpx: On-demand kernel allocation of bounds tables')Signed-off-by Dan Carpenter <[email protected]>---
v2: Use correct fixes tag.arch/x86/kernel/traps.c +0
-0
arch/x86/kernel/traps.c dotraplinkage void do_bounds(struct pt_regs *regs, long error_code) · line 337
Quoted 8 lines
arch/x86/kernel/traps.c +1
-1@@ -331,7 +331,7 @@ dotraplinkage void do_bounds(struct pt_regs *regs, long error_code)break ;/* Success, it was handled */ case 1 :/* Bound violation. */ info =mpx_generate_siginfo (regs, xsave_buf); -if (PTR_ERR (info)) { +if (IS_ERR (info)) {/* * We failed to decode the MPX instruction. Act as if * the exception was not caused by MPX.
I checked that this works on real hardware. The si_addr field in the generated siginfo was empty without this patch applied. With this patch, it has good (looking at least) contents.
Thanks for catching this!
arch/x86/kernel/traps.c dotraplinkage void do_bounds(struct pt_regs >
Quoted 12 lines · Dan Carpenter
We should be checking
IS_ERR()here.PTR_ERR()is always true.Fixes fe3d197f8431 ('x86, mpx: On-demand kernel allocation of boundsSigned-off-by Dan Carpenter <[email protected]>---
v2: Use correct fixes tag.arch/x86/kernel/traps.c +0
-0@@ -331,7 +331,7 @@ dotraplinkage void do_bounds(struct pt_regs >
break; /* Success, it was handled */
arch/x86/kernel/traps.c dotraplinkage void do_bounds(struct pt_regs *regs, long error_code) · line 337
Quoted 7 lines
arch/x86/kernel/traps.c +1
-1case 1 :/* Bound violation. */ info =mpx_generate_siginfo (regs, xsave_buf); -if (PTR_ERR (info)) { +if (IS_ERR (info)) {/* * We failed to decode the MPX instruction. * the exception was not caused by MPX.
I checked that this works on real hardware. The si_addr field in the generated siginfo was empty without this patch applied. With this patch, it has good (looking at least) contents.
Thanks for catching this!
tip-bot for Dan Carpenter
merge bot[tip:x86/mpx] x86_64/traps: Fix always true condition
In reply to Dan Carpenterx86_64/traps: Fix always true condition
Commit-ID: e10abb2f770eeb673d23c19980216b0fb62b4f50 Gitweb: http://git.kernel.org/tip/e10abb2f770eeb673d23c19980216b0fb62b4f50 Author: Dan Carpenter <[email protected]> AuthorDate: Tue, 25 Nov 2014 20:21:14 +0300 Committer: Ingo Molnar <[email protected]> CommitDate: Mon, 8 Dec 2014 12:06:59 +0100
x86_64/traps: Fix always true condition
We should be checking IS_ERR() here. PTR_ERR() is always true.
bounds tables')
--- arch/x86/kernel/traps.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/x86/kernel/traps.c +1 -1
@@ -323,7 +323,7 @@ dotraplinkage void do_bounds(struct pt_regs *regs, long error_code)break ;/* Success, it was handled */ case 1 :/* Bound violation. */ info =mpx_generate_siginfo (regs, xsave_buf); -if (PTR_ERR (info)) { +if (IS_ERR (info)) {/* * We failed to decode the MPX instruction. Act as if * the exception was not caused by MPX.