From 633621e541fa42f755be90afe3467c1fa04c6b8e Mon Sep 17 00:00:00 2001 From: "Gustavo F. Padovan" Date: Sat, 14 Aug 2010 00:48:07 -0300 Subject: [PATCH] --- yaml --- r: 211419 b: refs/heads/master c: fad003b6c8e3d944d4453fd569b0702ef1af82b3 h: refs/heads/master i: 211417: 774fe167a54a5a3ae24c2f1b43505e7fff966b6e 211415: 65be8ef4213cc29469d7273f472fb53597bf114f v: v3 --- [refs] | 2 +- trunk/net/bluetooth/rfcomm/sock.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index cd91a57bb8a3..0fe2fbb8a8b3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ccbb84af28594e19fd4bf27ff2828c80d03b6081 +refs/heads/master: fad003b6c8e3d944d4453fd569b0702ef1af82b3 diff --git a/trunk/net/bluetooth/rfcomm/sock.c b/trunk/net/bluetooth/rfcomm/sock.c index 44a623275951..194b3a04cfd3 100644 --- a/trunk/net/bluetooth/rfcomm/sock.c +++ b/trunk/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