hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
kernel/net/bluetooth/rfcomm/sock.c
....@@ -64,15 +64,13 @@
6464 static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err)
6565 {
6666 struct sock *sk = d->owner, *parent;
67
- unsigned long flags;
6867
6968 if (!sk)
7069 return;
7170
7271 BT_DBG("dlc %p state %ld err %d", d, d->state, err);
7372
74
- local_irq_save(flags);
75
- bh_lock_sock(sk);
73
+ spin_lock_bh(&sk->sk_lock.slock);
7674
7775 if (err)
7876 sk->sk_err = err;
....@@ -93,8 +91,7 @@
9391 sk->sk_state_change(sk);
9492 }
9593
96
- bh_unlock_sock(sk);
97
- local_irq_restore(flags);
94
+ spin_unlock_bh(&sk->sk_lock.slock);
9895
9996 if (parent && sock_flag(sk, SOCK_ZAPPED)) {
10097 /* We have to drop DLC lock here, otherwise