1 --- a/net/ipv4/tcp.c 2014-10-31 14:27:58.000000000 +0200
2 +++ b/net/ipv4/tcp.c 2015-05-19 15:34:22.078802741 +0300
3 @@ -763,8 +763,8 @@ static int tcp_send_mss(struct sock *sk,
7 -static ssize_t do_tcp_sendpages(struct sock *sk, struct page **pages, int poffset,
8 - size_t psize, int flags)
9 +static ssize_t do_tcp_sendpages(struct sock *sk, struct page *page, int offset,
10 + size_t size, int flags)
12 struct tcp_sock *tp = tcp_sk(sk);
13 int mss_now, size_goal;
14 @@ -786,12 +786,9 @@ static ssize_t do_tcp_sendpages(struct s
15 if (sk->sk_err || (sk->sk_shutdown & SEND_SHUTDOWN))
20 struct sk_buff *skb = tcp_write_queue_tail(sk);
21 - struct page *page = pages[poffset / PAGE_SIZE];
22 int copy, i, can_coalesce;
23 - int offset = poffset % PAGE_SIZE;
24 - int size = min_t(size_t, psize, PAGE_SIZE - offset);
26 if (!tcp_send_head(sk) || (copy = size_goal - skb->len) <= 0) {
28 @@ -840,8 +837,8 @@ new_segment:
29 TCP_SKB_CB(skb)->flags &= ~TCPCB_FLAG_PSH;
33 - if (!(psize -= copy))
35 + if (!(size -= copy))
38 if (skb->len < size_goal || (flags & MSG_OOB))
39 @@ -890,7 +887,7 @@ ssize_t tcp_sendpage(struct socket *sock
43 - res = do_tcp_sendpages(sk, &page, offset, size, flags);
44 + res = do_tcp_sendpages(sk, page, offset, size, flags);