From: Sebastian Andrzej Siewior <[email protected]>

commit 22230d9b50686faa3993849faffc5b7d446a4d43 in linux-rt-devel.

Since the softirq rework 32bit POWER does not compile because
get_current() is not provided - just the `current' macro.
Use the `current' instead.

Since the v5.2-RT series, the lazy-preempt code is broken. It loads the
lazy-counter and flags from the R9 but R2 should be used.

Signed-off-by: Sebastian Andrzej Siewior <[email protected]>
Signed-off-by: Paul Gortmaker <[email protected]>

diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index 646ea918e3d9..149a3b9ef8a8 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -894,10 +894,10 @@ resume_kernel:
        bne     restore_kuap
        andi.   r8,r8,_TIF_NEED_RESCHED
        bne+    1f
-       lwz     r0,TI_PREEMPT_LAZY(r9)
+       lwz     r0,TI_PREEMPT_LAZY(r2)
        cmpwi   0,r0,0          /* if non-zero, just restore regs and return */
        bne     restore_kuap
-       lwz     r0,TI_FLAGS(r9)
+       lwz     r0,TI_FLAGS(r2)
        andi.   r0,r0,_TIF_NEED_RESCHED_LAZY
        beq+    restore_kuap
 1:
diff --git a/include/linux/preempt.h b/include/linux/preempt.h
index d559e3a0379c..7653dd58b4b2 100644
--- a/include/linux/preempt.h
+++ b/include/linux/preempt.h
@@ -100,9 +100,9 @@
                                   (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_OFFSET)))
 #ifdef CONFIG_PREEMPT_RT_FULL
 
-#define softirq_count()                ((long)get_current()->softirq_count)
+#define softirq_count()                (current->softirq_count)
 #define in_softirq()           (softirq_count())
-#define in_serving_softirq()   (get_current()->softirq_count & SOFTIRQ_OFFSET)
+#define in_serving_softirq()   (current->softirq_count & SOFTIRQ_OFFSET)
 
 #else
 
-- 
2.7.4

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#8684): 
https://lists.yoctoproject.org/g/linux-yocto/message/8684
Mute This Topic: https://lists.yoctoproject.org/mt/74330111/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to