diff options
Diffstat (limited to 'net/tipc')
| -rw-r--r-- | net/tipc/msg.c | 2 | ||||
| -rw-r--r-- | net/tipc/socket.c | 38 | 
2 files changed, 20 insertions, 20 deletions
| diff --git a/net/tipc/msg.c b/net/tipc/msg.c index 312ef7de57d7..ab3087687a32 100644 --- a/net/tipc/msg.c +++ b/net/tipc/msg.c @@ -508,7 +508,7 @@ bool tipc_msg_reverse(u32 own_node,  struct sk_buff **skb, int err)  	}  	if (skb_cloned(_skb) && -	    pskb_expand_head(_skb, BUF_HEADROOM, BUF_TAILROOM, GFP_KERNEL)) +	    pskb_expand_head(_skb, BUF_HEADROOM, BUF_TAILROOM, GFP_ATOMIC))  		goto exit;  	/* Now reverse the concerned fields */ diff --git a/net/tipc/socket.c b/net/tipc/socket.c index 0d4f2f455a7c..1b92b72e812f 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c @@ -362,25 +362,25 @@ static int tipc_sk_sock_err(struct socket *sock, long *timeout)  	return 0;  } -#define tipc_wait_for_cond(sock_, timeout_, condition_)			\ -({								        \ -	int rc_ = 0;							\ -	int done_ = 0;							\ -									\ -	while (!(condition_) && !done_) {				\ -		struct sock *sk_ = sock->sk;				\ -		DEFINE_WAIT_FUNC(wait_, woken_wake_function);		\ -									\ -		rc_ = tipc_sk_sock_err(sock_, timeout_);		\ -		if (rc_)						\ -			break;						\ -		prepare_to_wait(sk_sleep(sk_), &wait_,			\ -				TASK_INTERRUPTIBLE);			\ -		done_ = sk_wait_event(sk_, timeout_,			\ -				      (condition_), &wait_);		\ -		remove_wait_queue(sk_sleep(sk_), &wait_);		\ -	}								\ -	rc_;								\ +#define tipc_wait_for_cond(sock_, timeo_, condition_)			       \ +({                                                                             \ +	struct sock *sk_;						       \ +	int rc_;							       \ +									       \ +	while ((rc_ = !(condition_))) {					       \ +		DEFINE_WAIT_FUNC(wait_, woken_wake_function);	               \ +		sk_ = (sock_)->sk;					       \ +		rc_ = tipc_sk_sock_err((sock_), timeo_);		       \ +		if (rc_)						       \ +			break;						       \ +		prepare_to_wait(sk_sleep(sk_), &wait_, TASK_INTERRUPTIBLE);    \ +		release_sock(sk_);					       \ +		*(timeo_) = wait_woken(&wait_, TASK_INTERRUPTIBLE, *(timeo_)); \ +		sched_annotate_sleep();				               \ +		lock_sock(sk_);						       \ +		remove_wait_queue(sk_sleep(sk_), &wait_);		       \ +	}								       \ +	rc_;								       \  })  /** |