The test for _TIF_SIGPENDING was inverted, and so the stack was being
cleared when there were no signals pending rather than signals pending.
Correctly test _TIF_SIGPENDING so that the freezer can be used to clear
the stack of garbage when applying Ksplice updates.
Orabug:
22194459
Reviewed-by: Quentin Casasnovas <quentin.casasnovas@oracle.com>
Signed-off-by: Jamie Iles <jamie.iles@oracle.com>
#define STACK_CLEAR_WORDS 0x80
ENTRY(clear_stack_do_notify_resume)
testl $_TIF_SIGPENDING, %ecx
- jnz do_notify_resume
+ jz do_notify_resume
push %eax
push %ecx
#define STACK_CLEAR_WORDS 0x80
ENTRY(clear_stack_do_notify_resume)
testl $_TIF_SIGPENDING, %edx
- jnz do_notify_resume
+ jz do_notify_resume
pushq %rdi