Re: [rfc patch v4.4-rt2] sched: fix up preempt lazy forward port
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2016-02-01 13:04:53
Also in:
lkml
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2016-02-01 13:04:53
Also in:
lkml
On 01/25/2016 06:14 PM, Grygorii Strashko wrote:
quoted
diff --git a/arch/arm/kernel/entry-common.Sb/arch/arm/kernel/entry-common.S index 30a7228eaceb..c3bd6cbfce4b 100644--- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S@@ -36,7 +36,9 @@ UNWIND(.cantunwind ) disable_irq_notrace @ disable interrupts ldr r1, [tsk, #TI_FLAGS] @ re-check for syscall tracing - tst r1, #_TIF_SYSCALL_WORK | _TIF_WORK_MASK + tst r1, #((_TIF_SYSCALL_WORK | _TIF_WORK_MASK) & ~_TIF_SECCOMP) + bne fast_work_pending^^^^^^^^^^^^^^^^quoted
+ tst r1, #_TIF_SECCOMP bne fast_work_pending^^^^^^^^^^^^^^^^^ Should it be "fast_work_pending" in both cases?
Yes, I think so and it is, isn't it?
The original is
tst r1, #_TIF_SYSCALL_WORK | _TIF_WORK_MASK
bne fast_work_pending
and with the LAZY bits in it, the ASM opcode no longer works because
the constant is too large (or has to many bits set). So I removed the
_TIF_SECCOMP bit out of the mask and made two compare & jumps here.
Sebastian