Loading include/net/sock.h +8 −4 Original line number Diff line number Diff line Loading @@ -709,6 +709,12 @@ static inline int sk_stream_rmem_schedule(struct sock *sk, struct sk_buff *skb) sk_stream_mem_schedule(sk, skb->truesize, 1); } static inline int sk_stream_wmem_schedule(struct sock *sk, int size) { return size <= sk->sk_forward_alloc || sk_stream_mem_schedule(sk, size, 0); } /* Used by processes to "lock" a socket state, so that * interrupts and bottom half handlers won't change it * from under us. It essentially blocks any incoming Loading Loading @@ -1203,8 +1209,7 @@ static inline struct sk_buff *sk_stream_alloc_pskb(struct sock *sk, skb = alloc_skb_fclone(size + hdr_len, gfp); if (skb) { skb->truesize += mem; if (sk->sk_forward_alloc >= (int)skb->truesize || sk_stream_mem_schedule(sk, skb->truesize, 0)) { if (sk_stream_wmem_schedule(sk, skb->truesize)) { skb_reserve(skb, hdr_len); return skb; } Loading @@ -1227,8 +1232,7 @@ static inline struct page *sk_stream_alloc_page(struct sock *sk) { struct page *page = NULL; if (sk->sk_forward_alloc >= (int)PAGE_SIZE || sk_stream_mem_schedule(sk, PAGE_SIZE, 0)) if (sk_stream_wmem_schedule(sk, PAGE_SIZE)) page = alloc_pages(sk->sk_allocation, 0); else { sk->sk_prot->enter_memory_pressure(); Loading net/ipv4/tcp.c +1 −2 Original line number Diff line number Diff line Loading @@ -552,8 +552,7 @@ static ssize_t do_tcp_sendpages(struct sock *sk, struct page **pages, int poffse tcp_mark_push(tp, skb); goto new_segment; } if (sk->sk_forward_alloc < copy && !sk_stream_mem_schedule(sk, copy, 0)) if (!sk_stream_wmem_schedule(sk, copy)) goto wait_for_memory; if (can_coalesce) { Loading Loading
include/net/sock.h +8 −4 Original line number Diff line number Diff line Loading @@ -709,6 +709,12 @@ static inline int sk_stream_rmem_schedule(struct sock *sk, struct sk_buff *skb) sk_stream_mem_schedule(sk, skb->truesize, 1); } static inline int sk_stream_wmem_schedule(struct sock *sk, int size) { return size <= sk->sk_forward_alloc || sk_stream_mem_schedule(sk, size, 0); } /* Used by processes to "lock" a socket state, so that * interrupts and bottom half handlers won't change it * from under us. It essentially blocks any incoming Loading Loading @@ -1203,8 +1209,7 @@ static inline struct sk_buff *sk_stream_alloc_pskb(struct sock *sk, skb = alloc_skb_fclone(size + hdr_len, gfp); if (skb) { skb->truesize += mem; if (sk->sk_forward_alloc >= (int)skb->truesize || sk_stream_mem_schedule(sk, skb->truesize, 0)) { if (sk_stream_wmem_schedule(sk, skb->truesize)) { skb_reserve(skb, hdr_len); return skb; } Loading @@ -1227,8 +1232,7 @@ static inline struct page *sk_stream_alloc_page(struct sock *sk) { struct page *page = NULL; if (sk->sk_forward_alloc >= (int)PAGE_SIZE || sk_stream_mem_schedule(sk, PAGE_SIZE, 0)) if (sk_stream_wmem_schedule(sk, PAGE_SIZE)) page = alloc_pages(sk->sk_allocation, 0); else { sk->sk_prot->enter_memory_pressure(); Loading
net/ipv4/tcp.c +1 −2 Original line number Diff line number Diff line Loading @@ -552,8 +552,7 @@ static ssize_t do_tcp_sendpages(struct sock *sk, struct page **pages, int poffse tcp_mark_push(tp, skb); goto new_segment; } if (sk->sk_forward_alloc < copy && !sk_stream_mem_schedule(sk, copy, 0)) if (!sk_stream_wmem_schedule(sk, copy)) goto wait_for_memory; if (can_coalesce) { Loading