[BLUETOOTH] lockdep: annotate sk_lock nesting in AF_BLUETOOTH
============================================= [ INFO: possible recursive locking detected ] 2.6.18-1.2726.fc6 #1
This commit is contained in:
Родитель
67f83cbf08
Коммит
fcc70d5fdc
|
@ -745,7 +745,13 @@ static inline int sk_stream_wmem_schedule(struct sock *sk, int size)
|
|||
*/
|
||||
#define sock_owned_by_user(sk) ((sk)->sk_lock.owner)
|
||||
|
||||
extern void FASTCALL(lock_sock(struct sock *sk));
|
||||
extern void FASTCALL(lock_sock_nested(struct sock *sk, int subclass));
|
||||
|
||||
static inline void lock_sock(struct sock *sk)
|
||||
{
|
||||
lock_sock_nested(sk, 0);
|
||||
}
|
||||
|
||||
extern void FASTCALL(release_sock(struct sock *sk));
|
||||
|
||||
/* BH context may only use the following locking interface. */
|
||||
|
|
|
@ -770,7 +770,7 @@ static int l2cap_sock_accept(struct socket *sock, struct socket *newsock, int fl
|
|||
long timeo;
|
||||
int err = 0;
|
||||
|
||||
lock_sock(sk);
|
||||
lock_sock_nested(sk, SINGLE_DEPTH_NESTING);
|
||||
|
||||
if (sk->sk_state != BT_LISTEN) {
|
||||
err = -EBADFD;
|
||||
|
@ -792,7 +792,7 @@ static int l2cap_sock_accept(struct socket *sock, struct socket *newsock, int fl
|
|||
|
||||
release_sock(sk);
|
||||
timeo = schedule_timeout(timeo);
|
||||
lock_sock(sk);
|
||||
lock_sock_nested(sk, SINGLE_DEPTH_NESTING);
|
||||
|
||||
if (sk->sk_state != BT_LISTEN) {
|
||||
err = -EBADFD;
|
||||
|
|
|
@ -1527,7 +1527,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
|
|||
atomic_set(&sk->sk_refcnt, 1);
|
||||
}
|
||||
|
||||
void fastcall lock_sock(struct sock *sk)
|
||||
void fastcall lock_sock_nested(struct sock *sk, int subclass)
|
||||
{
|
||||
might_sleep();
|
||||
spin_lock_bh(&sk->sk_lock.slock);
|
||||
|
@ -1538,11 +1538,11 @@ void fastcall lock_sock(struct sock *sk)
|
|||
/*
|
||||
* The sk_lock has mutex_lock() semantics here:
|
||||
*/
|
||||
mutex_acquire(&sk->sk_lock.dep_map, 0, 0, _RET_IP_);
|
||||
mutex_acquire(&sk->sk_lock.dep_map, subclass, 0, _RET_IP_);
|
||||
local_bh_enable();
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(lock_sock);
|
||||
EXPORT_SYMBOL(lock_sock_nested);
|
||||
|
||||
void fastcall release_sock(struct sock *sk)
|
||||
{
|
||||
|
|
Загрузка…
Ссылка в новой задаче