diff options
author | Josh Poimboeuf <[email protected]> | 2016-09-21 16:04:05 -0500 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2016-10-20 09:15:23 +0200 |
commit | 595c1e645d9fd8561104b5680931f68a429aaa1c (patch) | |
tree | ee693de30058153bcfcdfbf0ec50dc31f6edce47 /scripts/gcc-plugins/cyc_complexity_plugin.c | |
parent | a9468df5ad48d06e5237fc2b56fb04c52f79c8c4 (diff) |
x86/boot/64: Put a real return address on the idle task stack
The frame at the end of each idle task stack has a zeroed return
address. This is inconsistent with real task stacks, which have a real
return address at that spot. This inconsistency can be confusing for
stack unwinders. It also hides useful information about what asm code
was involved in calling into C.
Make it a real address by using the side effect of a call instruction to
push the instruction pointer on the stack.
Signed-off-by: Josh Poimboeuf <[email protected]>
Reviewed-by: Andy Lutomirski <[email protected]>
Cc: Borislav Petkov <[email protected]>
Cc: Brian Gerst <[email protected]>
Cc: Denys Vlasenko <[email protected]>
Cc: H. Peter Anvin <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Nilay Vaish <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Link: http://lkml.kernel.org/r/f59593ae7b15d5126f872b0a23143173d28aa32d.1474480779.git.jpoimboe@redhat.com
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'scripts/gcc-plugins/cyc_complexity_plugin.c')
0 files changed, 0 insertions, 0 deletions