diff options
Diffstat (limited to 'debian/patches-rt/0240-x86-lazy-preempt-properly-check-against-preempt-mask.patch')
-rw-r--r-- | debian/patches-rt/0240-x86-lazy-preempt-properly-check-against-preempt-mask.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/debian/patches-rt/0240-x86-lazy-preempt-properly-check-against-preempt-mask.patch b/debian/patches-rt/0240-x86-lazy-preempt-properly-check-against-preempt-mask.patch new file mode 100644 index 000000000..df8346c2d --- /dev/null +++ b/debian/patches-rt/0240-x86-lazy-preempt-properly-check-against-preempt-mask.patch @@ -0,0 +1,33 @@ +From 87b957ebbe16c81c7a72161e8d1ab55d0746bd83 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Date: Mon, 18 Feb 2019 16:57:09 +0100 +Subject: [PATCH 240/347] x86: lazy-preempt: properly check against + preempt-mask +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz + +should_resched() should check against preempt_offset after unmasking the +need-resched-bit. Otherwise should_resched() won't work for +preempt_offset != 0 and lazy-preempt set. + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + arch/x86/include/asm/preempt.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h +index 22992c837795..f66708779274 100644 +--- a/arch/x86/include/asm/preempt.h ++++ b/arch/x86/include/asm/preempt.h +@@ -118,7 +118,7 @@ static __always_inline bool should_resched(int preempt_offset) + + /* preempt count == 0 ? */ + tmp &= ~PREEMPT_NEED_RESCHED; +- if (tmp) ++ if (tmp != preempt_offset) + return false; + if (current_thread_info()->preempt_lazy_count) + return false; +-- +2.36.1 + |