diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-08 03:21:37 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-08 03:21:37 +0000 |
commit | 06343b27411344fc542f4f3a643f8441aa35252d (patch) | |
tree | 66aa45187c93c350bbdf7e6ae4467a70bf3a8f4c /debian/patches-rt/0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch | |
parent | Merging upstream version 4.19.260. (diff) | |
download | linux-06343b27411344fc542f4f3a643f8441aa35252d.tar.xz linux-06343b27411344fc542f4f3a643f8441aa35252d.zip |
Adding debian version 4.19.260-1.debian/4.19.260-1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch')
-rw-r--r-- | debian/patches-rt/0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/debian/patches-rt/0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch b/debian/patches-rt/0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch deleted file mode 100644 index b6096f1c2..000000000 --- a/debian/patches-rt/0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch +++ /dev/null @@ -1,129 +0,0 @@ -From c0b7b36cdce411ac0992029c343d9fb8eb65c305 Mon Sep 17 00:00:00 2001 -From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> -Date: Tue, 19 Nov 2019 09:25:04 +0100 -Subject: [PATCH 311/347] locking: Make spinlock_t and rwlock_t a RCU section - on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz - -[ Upstream commit 84440022a0e1c8c936d61f8f97593674a295d409 ] - -On !RT a locked spinlock_t and rwlock_t disables preemption which -implies a RCU read section. There is code that relies on that behaviour. - -Add an explicit RCU read section on RT while a sleeping lock (a lock -which would disables preemption on !RT) acquired. - -Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> -Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> ---- - kernel/locking/rtmutex.c | 6 ++++++ - kernel/locking/rwlock-rt.c | 6 ++++++ - 2 files changed, 12 insertions(+) - -diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index dc95a81ae3a6..fe5153fc7665 100644 ---- a/kernel/locking/rtmutex.c -+++ b/kernel/locking/rtmutex.c -@@ -1142,6 +1142,7 @@ void __sched rt_spin_lock_slowunlock(struct rt_mutex *lock) - void __lockfunc rt_spin_lock(spinlock_t *lock) - { - sleeping_lock_inc(); -+ rcu_read_lock(); - migrate_disable(); - spin_acquire(&lock->dep_map, 0, 0, _RET_IP_); - rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock); -@@ -1157,6 +1158,7 @@ void __lockfunc __rt_spin_lock(struct rt_mutex *lock) - void __lockfunc rt_spin_lock_nested(spinlock_t *lock, int subclass) - { - sleeping_lock_inc(); -+ rcu_read_lock(); - migrate_disable(); - spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_); - rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock); -@@ -1170,6 +1172,7 @@ void __lockfunc rt_spin_unlock(spinlock_t *lock) - spin_release(&lock->dep_map, 1, _RET_IP_); - rt_spin_lock_fastunlock(&lock->lock, rt_spin_lock_slowunlock); - migrate_enable(); -+ rcu_read_unlock(); - sleeping_lock_dec(); - } - EXPORT_SYMBOL(rt_spin_unlock); -@@ -1201,6 +1204,7 @@ int __lockfunc rt_spin_trylock(spinlock_t *lock) - ret = __rt_mutex_trylock(&lock->lock); - if (ret) { - spin_acquire(&lock->dep_map, 0, 1, _RET_IP_); -+ rcu_read_lock(); - } else { - migrate_enable(); - sleeping_lock_dec(); -@@ -1217,6 +1221,7 @@ int __lockfunc rt_spin_trylock_bh(spinlock_t *lock) - ret = __rt_mutex_trylock(&lock->lock); - if (ret) { - sleeping_lock_inc(); -+ rcu_read_lock(); - migrate_disable(); - spin_acquire(&lock->dep_map, 0, 1, _RET_IP_); - } else -@@ -1233,6 +1238,7 @@ int __lockfunc rt_spin_trylock_irqsave(spinlock_t *lock, unsigned long *flags) - ret = __rt_mutex_trylock(&lock->lock); - if (ret) { - sleeping_lock_inc(); -+ rcu_read_lock(); - migrate_disable(); - spin_acquire(&lock->dep_map, 0, 1, _RET_IP_); - } -diff --git a/kernel/locking/rwlock-rt.c b/kernel/locking/rwlock-rt.c -index c3b91205161c..0ae8c62ea832 100644 ---- a/kernel/locking/rwlock-rt.c -+++ b/kernel/locking/rwlock-rt.c -@@ -310,6 +310,7 @@ int __lockfunc rt_read_trylock(rwlock_t *rwlock) - ret = do_read_rt_trylock(rwlock); - if (ret) { - rwlock_acquire_read(&rwlock->dep_map, 0, 1, _RET_IP_); -+ rcu_read_lock(); - } else { - migrate_enable(); - sleeping_lock_dec(); -@@ -327,6 +328,7 @@ int __lockfunc rt_write_trylock(rwlock_t *rwlock) - ret = do_write_rt_trylock(rwlock); - if (ret) { - rwlock_acquire(&rwlock->dep_map, 0, 1, _RET_IP_); -+ rcu_read_lock(); - } else { - migrate_enable(); - sleeping_lock_dec(); -@@ -338,6 +340,7 @@ EXPORT_SYMBOL(rt_write_trylock); - void __lockfunc rt_read_lock(rwlock_t *rwlock) - { - sleeping_lock_inc(); -+ rcu_read_lock(); - migrate_disable(); - rwlock_acquire_read(&rwlock->dep_map, 0, 0, _RET_IP_); - do_read_rt_lock(rwlock); -@@ -347,6 +350,7 @@ EXPORT_SYMBOL(rt_read_lock); - void __lockfunc rt_write_lock(rwlock_t *rwlock) - { - sleeping_lock_inc(); -+ rcu_read_lock(); - migrate_disable(); - rwlock_acquire(&rwlock->dep_map, 0, 0, _RET_IP_); - do_write_rt_lock(rwlock); -@@ -358,6 +362,7 @@ void __lockfunc rt_read_unlock(rwlock_t *rwlock) - rwlock_release(&rwlock->dep_map, 1, _RET_IP_); - do_read_rt_unlock(rwlock); - migrate_enable(); -+ rcu_read_unlock(); - sleeping_lock_dec(); - } - EXPORT_SYMBOL(rt_read_unlock); -@@ -367,6 +372,7 @@ void __lockfunc rt_write_unlock(rwlock_t *rwlock) - rwlock_release(&rwlock->dep_map, 1, _RET_IP_); - do_write_rt_unlock(rwlock); - migrate_enable(); -+ rcu_read_unlock(); - sleeping_lock_dec(); - } - EXPORT_SYMBOL(rt_write_unlock); --- -2.36.1 - |