|
@@ -2045,7 +2045,8 @@ void __tcp_push_pending_frames(struct sock *sk, unsigned int cur_mss,
|
|
|
if (unlikely(sk->sk_state == TCP_CLOSE))
|
|
|
return;
|
|
|
|
|
|
- if (tcp_write_xmit(sk, cur_mss, nonagle, 0, GFP_ATOMIC))
|
|
|
+ if (tcp_write_xmit(sk, cur_mss, nonagle, 0,
|
|
|
+ sk_gfp_atomic(sk, GFP_ATOMIC)))
|
|
|
tcp_check_probe_timer(sk);
|
|
|
}
|
|
|
|
|
@@ -2666,7 +2667,8 @@ struct sk_buff *tcp_make_synack(struct sock *sk, struct dst_entry *dst,
|
|
|
|
|
|
if (cvp != NULL && cvp->s_data_constant && cvp->s_data_desired)
|
|
|
s_data_desired = cvp->s_data_desired;
|
|
|
- skb = alloc_skb(MAX_TCP_HEADER + 15 + s_data_desired, GFP_ATOMIC);
|
|
|
+ skb = alloc_skb(MAX_TCP_HEADER + 15 + s_data_desired,
|
|
|
+ sk_gfp_atomic(sk, GFP_ATOMIC));
|
|
|
if (unlikely(!skb)) {
|
|
|
dst_release(dst);
|
|
|
return NULL;
|
|
@@ -3064,7 +3066,7 @@ void tcp_send_ack(struct sock *sk)
|
|
|
* tcp_transmit_skb() will set the ownership to this
|
|
|
* sock.
|
|
|
*/
|
|
|
- buff = alloc_skb(MAX_TCP_HEADER, GFP_ATOMIC);
|
|
|
+ buff = alloc_skb(MAX_TCP_HEADER, sk_gfp_atomic(sk, GFP_ATOMIC));
|
|
|
if (buff == NULL) {
|
|
|
inet_csk_schedule_ack(sk);
|
|
|
inet_csk(sk)->icsk_ack.ato = TCP_ATO_MIN;
|
|
@@ -3079,7 +3081,7 @@ void tcp_send_ack(struct sock *sk)
|
|
|
|
|
|
/* Send it off, this clears delayed acks for us. */
|
|
|
TCP_SKB_CB(buff)->when = tcp_time_stamp;
|
|
|
- tcp_transmit_skb(sk, buff, 0, GFP_ATOMIC);
|
|
|
+ tcp_transmit_skb(sk, buff, 0, sk_gfp_atomic(sk, GFP_ATOMIC));
|
|
|
}
|
|
|
|
|
|
/* This routine sends a packet with an out of date sequence
|
|
@@ -3099,7 +3101,7 @@ static int tcp_xmit_probe_skb(struct sock *sk, int urgent)
|
|
|
struct sk_buff *skb;
|
|
|
|
|
|
/* We don't queue it, tcp_transmit_skb() sets ownership. */
|
|
|
- skb = alloc_skb(MAX_TCP_HEADER, GFP_ATOMIC);
|
|
|
+ skb = alloc_skb(MAX_TCP_HEADER, sk_gfp_atomic(sk, GFP_ATOMIC));
|
|
|
if (skb == NULL)
|
|
|
return -1;
|
|
|
|