diff options
Diffstat (limited to 'debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch')
-rw-r--r-- | debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch b/debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch new file mode 100644 index 000000000..2c287d8e1 --- /dev/null +++ b/debian/patches-rt/0239-x86-lazy-preempt-properly-check-against-preempt-mask.patch @@ -0,0 +1,29 @@ +From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Date: Mon, 18 Feb 2019 16:57:09 +0100 +Subject: [PATCH 239/342] x86: lazy-preempt: properly check against + preempt-mask +Origin: https://git.kernel.org/cgit/linux/kernel/git/rt/linux-stable-rt.git/commit?id=62de1107905ffc4ce432b5192aa4e86cba2ea98b + +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; |