x86/traps: Use a new on_thread_stack() helper to clean up an assertion
Let's keep the stack-related logic together rather than open-coding a comparison in an assertion in the traps code. Signed-off-by: Andy Lutomirski <luto@kernel.org> Reviewed-by: Borislav Petkov <bp@suse.de> Cc: Borislav Petkov <bpetkov@suse.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/856b15bee1f55017b8f79d3758b0d51c48a08cf8.1509609304.git.luto@kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:

committed by
Ingo Molnar

parent
d375cf1530
commit
3383642c2f
@@ -541,6 +541,12 @@ static inline unsigned long current_top_of_stack(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool on_thread_stack(void)
|
||||||
|
{
|
||||||
|
return (unsigned long)(current_top_of_stack() -
|
||||||
|
current_stack_pointer) < THREAD_SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PARAVIRT
|
#ifdef CONFIG_PARAVIRT
|
||||||
#include <asm/paravirt.h>
|
#include <asm/paravirt.h>
|
||||||
#else
|
#else
|
||||||
|
@@ -141,8 +141,7 @@ void ist_begin_non_atomic(struct pt_regs *regs)
|
|||||||
* will catch asm bugs and any attempt to use ist_preempt_enable
|
* will catch asm bugs and any attempt to use ist_preempt_enable
|
||||||
* from double_fault.
|
* from double_fault.
|
||||||
*/
|
*/
|
||||||
BUG_ON((unsigned long)(current_top_of_stack() -
|
BUG_ON(!on_thread_stack());
|
||||||
current_stack_pointer) >= THREAD_SIZE);
|
|
||||||
|
|
||||||
preempt_enable_no_resched();
|
preempt_enable_no_resched();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user