diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-08 03:22:37 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-08 03:26:40 +0000 |
commit | 08f003891b84f52e49a5bdbc8a589fb052ac9a4e (patch) | |
tree | b7e426b4a4eb48e9e71188a2812a4c71625c35ac /debian/patches-rt/0330-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch | |
parent | Merging upstream version 4.19.260. (diff) | |
download | linux-08f003891b84f52e49a5bdbc8a589fb052ac9a4e.tar.xz linux-08f003891b84f52e49a5bdbc8a589fb052ac9a4e.zip |
Merging debian version 4.19.260-1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0330-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch')
-rw-r--r-- | debian/patches-rt/0330-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/debian/patches-rt/0330-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch b/debian/patches-rt/0330-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch deleted file mode 100644 index ff8d39cfc..000000000 --- a/debian/patches-rt/0330-Bluetooth-Acquire-sk_lock.slock-without-disabling-in.patch +++ /dev/null @@ -1,65 +0,0 @@ -From ba289a24015e6e110bcc57dad832a8094be6b955 Mon Sep 17 00:00:00 2001 -From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> -Date: Thu, 28 May 2020 14:35:12 +0200 -Subject: [PATCH 330/347] Bluetooth: Acquire sk_lock.slock without disabling - interrupts -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.246-rt110.tar.xz - -[ Upstream commit e6da0edc24eecef2f6964d92fa9044e1821deace ] - -There was a lockdep which led to commit - fad003b6c8e3d ("Bluetooth: Fix inconsistent lock state with RFCOMM") - -Lockdep noticed that `sk->sk_lock.slock' was acquired without disabling -the softirq while the lock was also used in softirq context. -Unfortunately the solution back then was to disable interrupts before -acquiring the lock which however made lockdep happy. -It would have been enough to simply disable the softirq. Disabling -interrupts before acquiring a spinlock_t is not allowed on PREEMPT_RT -because these locks are converted to 'sleeping' spinlocks. - -Use spin_lock_bh() in order to acquire the `sk_lock.slock'. - -Reported-by: Luis Claudio R. Goncalves <lclaudio@uudg.org> -Reported-by: kbuild test robot <lkp@intel.com> [missing unlock] -Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> -Signed-off-by: Marcel Holtmann <marcel@holtmann.org> -Signed-off-by: Tom Zanussi <zanussi@kernel.org> ---- - net/bluetooth/rfcomm/sock.c | 7 ++----- - 1 file changed, 2 insertions(+), 5 deletions(-) - -diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c -index c044ff2f73e6..75bc8102cdd7 100644 ---- a/net/bluetooth/rfcomm/sock.c -+++ b/net/bluetooth/rfcomm/sock.c -@@ -64,15 +64,13 @@ static void rfcomm_sk_data_ready(struct rfcomm_dlc *d, struct sk_buff *skb) - static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err) - { - struct sock *sk = d->owner, *parent; -- unsigned long flags; - - if (!sk) - return; - - BT_DBG("dlc %p state %ld err %d", d, d->state, err); - -- local_irq_save(flags); -- bh_lock_sock(sk); -+ spin_lock_bh(&sk->sk_lock.slock); - - if (err) - sk->sk_err = err; -@@ -93,8 +91,7 @@ static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err) - sk->sk_state_change(sk); - } - -- bh_unlock_sock(sk); -- local_irq_restore(flags); -+ spin_unlock_bh(&sk->sk_lock.slock); - - if (parent && sock_flag(sk, SOCK_ZAPPED)) { - /* We have to drop DLC lock here, otherwise --- -2.36.1 - |