diff options
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
| -rw-r--r-- | net/ipv6/tcp_ipv6.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 221224e72507..c66b90f71c9b 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -1299,7 +1299,8 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,  	/* Clone pktoptions received with SYN */  	newnp->pktoptions = NULL;  	if (treq->pktopts != NULL) { -		newnp->pktoptions = skb_clone(treq->pktopts, GFP_ATOMIC); +		newnp->pktoptions = skb_clone(treq->pktopts, +					      sk_gfp_atomic(sk, GFP_ATOMIC));  		consume_skb(treq->pktopts);  		treq->pktopts = NULL;  		if (newnp->pktoptions) @@ -1349,7 +1350,8 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,  		 * across. Shucks.  		 */  		tcp_md5_do_add(newsk, (union tcp_md5_addr *)&newnp->daddr, -			       AF_INET6, key->key, key->keylen, GFP_ATOMIC); +			       AF_INET6, key->key, key->keylen, +			       sk_gfp_atomic(sk, GFP_ATOMIC));  	}  #endif @@ -1442,7 +1444,7 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)  					       --ANK (980728)  	 */  	if (np->rxopt.all) -		opt_skb = skb_clone(skb, GFP_ATOMIC); +		opt_skb = skb_clone(skb, sk_gfp_atomic(sk, GFP_ATOMIC));  	if (sk->sk_state == TCP_ESTABLISHED) { /* Fast path */  		sock_rps_save_rxhash(sk, skb); @@ -2015,7 +2017,7 @@ struct proto tcpv6_prot = {  	.compat_setsockopt	= compat_tcp_setsockopt,  	.compat_getsockopt	= compat_tcp_getsockopt,  #endif -#ifdef CONFIG_CGROUP_MEM_RES_CTLR_KMEM +#ifdef CONFIG_MEMCG_KMEM  	.proto_cgroup		= tcp_proto_cgroup,  #endif  };  | 
