Thread (18 messages) 18 messages, 3 authors, 2016-02-21

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

On 01/25/2016 06:14 PM, Grygorii Strashko wrote:
quoted
diff --git a/arch/arm/kernel/entry-common.S
b/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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help