]> Pileus Git - ~andy/linux/commitdiff
Bluetooth: Fix context in rfcomm_sock_lock
authorGustavo F. Padovan <padovan@profusion.mobi>
Tue, 27 Dec 2011 17:28:44 +0000 (15:28 -0200)
committerGustavo F. Padovan <padovan@profusion.mobi>
Tue, 3 Jan 2012 00:17:29 +0000 (22:17 -0200)
Code now run in process context, does not need to disable interrupt
anymore.

Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
net/bluetooth/rfcomm/sock.c

index aea2bdd1510f2b4f083a4581105228b927cde858..f066678faeee838efae16243111a1bb51f47c8f3 100644 (file)
@@ -370,7 +370,7 @@ static int rfcomm_sock_bind(struct socket *sock, struct sockaddr *addr, int addr
                goto done;
        }
 
-       write_lock_bh(&rfcomm_sk_list.lock);
+       write_lock(&rfcomm_sk_list.lock);
 
        if (sa->rc_channel && __rfcomm_get_sock_by_addr(sa->rc_channel, &sa->rc_bdaddr)) {
                err = -EADDRINUSE;
@@ -381,7 +381,7 @@ static int rfcomm_sock_bind(struct socket *sock, struct sockaddr *addr, int addr
                sk->sk_state = BT_BOUND;
        }
 
-       write_unlock_bh(&rfcomm_sk_list.lock);
+       write_unlock(&rfcomm_sk_list.lock);
 
 done:
        release_sock(sk);
@@ -455,7 +455,7 @@ static int rfcomm_sock_listen(struct socket *sock, int backlog)
 
                err = -EINVAL;
 
-               write_lock_bh(&rfcomm_sk_list.lock);
+               write_lock(&rfcomm_sk_list.lock);
 
                for (channel = 1; channel < 31; channel++)
                        if (!__rfcomm_get_sock_by_addr(channel, src)) {
@@ -464,7 +464,7 @@ static int rfcomm_sock_listen(struct socket *sock, int backlog)
                                break;
                        }
 
-               write_unlock_bh(&rfcomm_sk_list.lock);
+               write_unlock(&rfcomm_sk_list.lock);
 
                if (err < 0)
                        goto done;
@@ -982,7 +982,7 @@ static int rfcomm_sock_debugfs_show(struct seq_file *f, void *p)
        struct sock *sk;
        struct hlist_node *node;
 
-       read_lock_bh(&rfcomm_sk_list.lock);
+       read_lock(&rfcomm_sk_list.lock);
 
        sk_for_each(sk, node, &rfcomm_sk_list.head) {
                seq_printf(f, "%s %s %d %d\n",
@@ -991,7 +991,7 @@ static int rfcomm_sock_debugfs_show(struct seq_file *f, void *p)
                                sk->sk_state, rfcomm_pi(sk)->channel);
        }
 
-       read_unlock_bh(&rfcomm_sk_list.lock);
+       read_unlock(&rfcomm_sk_list.lock);
 
        return 0;
 }