diff options
author | Salvatore Bonaccorso <carnil@debian.org> | 2019-12-18 18:06:31 +0100 |
---|---|---|
committer | Salvatore Bonaccorso <carnil@debian.org> | 2019-12-18 22:50:21 +0100 |
commit | 102987a83771aa994821d4d982d06faa64c789e4 (patch) | |
tree | 3e5ab5206886ec297a1a97ce80f504d75468ed2f /debian/patches-rt/rt-local-irq-lock.patch | |
parent | 479cb120ecb2b3f2c4d929a7b57860248d6f79bd (diff) | |
download | linux-debian-102987a83771aa994821d4d982d06faa64c789e4.tar.gz |
[rt] Update to 5.4.3-rt1 and re-enable
Adjust for context changes due to backport of
e66b39af00f4 ("workqueue: Fix pwq ref leak in rescuer_thread()") and
def98c84b6cd ("workqueue: Fix spurious sanity check failures in
destroy_workqueue()") in 5.4.4.
Diffstat (limited to 'debian/patches-rt/rt-local-irq-lock.patch')
-rw-r--r-- | debian/patches-rt/rt-local-irq-lock.patch | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/debian/patches-rt/rt-local-irq-lock.patch b/debian/patches-rt/rt-local-irq-lock.patch index f42dc869a..bb39990b4 100644 --- a/debian/patches-rt/rt-local-irq-lock.patch +++ b/debian/patches-rt/rt-local-irq-lock.patch @@ -1,7 +1,7 @@ Subject: rt: Add local irq locks From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 20 Jun 2011 09:03:47 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.17-rt9.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patches-5.4.3-rt1.tar.xz Introduce locallock. For !RT this maps to preempt_disable()/ local_irq_disable() so there is not much that changes. For RT this will @@ -13,20 +13,20 @@ is held and the owner is preempted. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- - include/linux/locallock.h | 271 ++++++++++++++++++++++++++++++++++++++++++++++ + include/linux/locallock.h | 281 ++++++++++++++++++++++++++++++++++++++++++++++ include/linux/percpu.h | 29 ++++ - 2 files changed, 300 insertions(+) + 2 files changed, 310 insertions(+) --- /dev/null +++ b/include/linux/locallock.h -@@ -0,0 +1,271 @@ +@@ -0,0 +1,281 @@ +#ifndef _LINUX_LOCALLOCK_H +#define _LINUX_LOCALLOCK_H + +#include <linux/percpu.h> +#include <linux/spinlock.h> + -+#ifdef CONFIG_PREEMPT_RT_BASE ++#ifdef CONFIG_PREEMPT_RT + +#ifdef CONFIG_DEBUG_SPINLOCK +# define LL_WARN(cond) WARN_ON(cond) @@ -244,6 +244,14 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> + +#define put_locked_var(lvar, var) local_unlock(lvar); + ++#define get_locked_ptr(lvar, var) \ ++ ({ \ ++ local_lock(lvar); \ ++ this_cpu_ptr(var); \ ++ }) ++ ++#define put_locked_ptr(lvar, var) local_unlock(lvar); ++ +#define local_lock_cpu(lvar) \ + ({ \ + local_lock(lvar); \ @@ -252,7 +260,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> + +#define local_unlock_cpu(lvar) local_unlock(lvar) + -+#else /* PREEMPT_RT_BASE */ ++#else /* PREEMPT_RT */ + +#define DEFINE_LOCAL_IRQ_LOCK(lvar) __typeof__(const int) lvar +#define DECLARE_LOCAL_IRQ_LOCK(lvar) extern __typeof__(const int) lvar @@ -284,6 +292,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> + +#define get_locked_var(lvar, var) get_cpu_var(var) +#define put_locked_var(lvar, var) put_cpu_var(var) ++#define get_locked_ptr(lvar, var) get_cpu_ptr(var) ++#define put_locked_ptr(lvar, var) put_cpu_ptr(var) + +#define local_lock_cpu(lvar) get_cpu() +#define local_unlock_cpu(lvar) put_cpu() @@ -297,7 +307,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> #define PERCPU_MODULE_RESERVE 0 #endif -+#ifdef CONFIG_PREEMPT_RT_FULL ++#ifdef CONFIG_PREEMPT_RT + +#define get_local_var(var) (*({ \ + migrate_disable(); \ |