diff options
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r-- | net/ipv4/tcp_input.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index aa659e825054..a356e1fecf9a 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -5475,7 +5475,9 @@ int tcp_rcv_established(struct sock *sk, struct sk_buff *skb, | |||
5475 | if (tp->copied_seq == tp->rcv_nxt && | 5475 | if (tp->copied_seq == tp->rcv_nxt && |
5476 | len - tcp_header_len <= tp->ucopy.len) { | 5476 | len - tcp_header_len <= tp->ucopy.len) { |
5477 | #ifdef CONFIG_NET_DMA | 5477 | #ifdef CONFIG_NET_DMA |
5478 | if (tcp_dma_try_early_copy(sk, skb, tcp_header_len)) { | 5478 | if (tp->ucopy.task == current && |
5479 | sock_owned_by_user(sk) && | ||
5480 | tcp_dma_try_early_copy(sk, skb, tcp_header_len)) { | ||
5479 | copied_early = 1; | 5481 | copied_early = 1; |
5480 | eaten = 1; | 5482 | eaten = 1; |
5481 | } | 5483 | } |