| Index: chromeos/compat-wireless/net/bluetooth/rfcomm/sock.c
|
| diff --git a/chromeos/compat-wireless/net/bluetooth/rfcomm/sock.c b/chromeos/compat-wireless/net/bluetooth/rfcomm/sock.c
|
| index 321f85a27a0df8b3a75cb285f9ea5ba0412fd151..098ec5573ec111f73b6b1f2c94d00a4c60705b69 100644
|
| --- a/chromeos/compat-wireless/net/bluetooth/rfcomm/sock.c
|
| +++ b/chromeos/compat-wireless/net/bluetooth/rfcomm/sock.c
|
| @@ -82,11 +82,14 @@ 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);
|
|
|
| if (err)
|
| @@ -108,6 +111,7 @@ static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err)
|
| }
|
|
|
| bh_unlock_sock(sk);
|
| + local_irq_restore(flags);
|
|
|
| if (parent && sock_flag(sk, SOCK_ZAPPED)) {
|
| /* We have to drop DLC lock here, otherwise
|
|
|