summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-08 03:21:37 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-08 03:21:37 +0000
commit06343b27411344fc542f4f3a643f8441aa35252d (patch)
tree66aa45187c93c350bbdf7e6ae4467a70bf3a8f4c /debian/patches-rt/0311-locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch
parentMerging upstream version 4.19.260. (diff)
downloadlinux-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.patch129
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
-