--- /dev/null
+--- a/net/ipv4/tcp.c 2014-10-31 14:27:58.000000000 +0200
++++ b/net/ipv4/tcp.c 2015-05-19 15:34:22.078802741 +0300
+@@ -763,8 +763,8 @@ static int tcp_send_mss(struct sock *sk,
+ return mss_now;
+ }
+
+-static ssize_t do_tcp_sendpages(struct sock *sk, struct page **pages, int poffset,
+- size_t psize, int flags)
++static ssize_t do_tcp_sendpages(struct sock *sk, struct page *page, int offset,
++ size_t size, int flags)
+ {
+ struct tcp_sock *tp = tcp_sk(sk);
+ int mss_now, size_goal;
+@@ -786,12 +786,9 @@ static ssize_t do_tcp_sendpages(struct s
+ if (sk->sk_err || (sk->sk_shutdown & SEND_SHUTDOWN))
+ goto out_err;
+
+- while (psize > 0) {
++ while (size > 0) {
+ struct sk_buff *skb = tcp_write_queue_tail(sk);
+- struct page *page = pages[poffset / PAGE_SIZE];
+ int copy, i, can_coalesce;
+- int offset = poffset % PAGE_SIZE;
+- int size = min_t(size_t, psize, PAGE_SIZE - offset);
+
+ if (!tcp_send_head(sk) || (copy = size_goal - skb->len) <= 0) {
+ new_segment:
+@@ -840,8 +837,8 @@ new_segment:
+ TCP_SKB_CB(skb)->flags &= ~TCPCB_FLAG_PSH;
+
+ copied += copy;
+- poffset += copy;
+- if (!(psize -= copy))
++ offset += copy;
++ if (!(size -= copy))
+ goto out;
+
+ if (skb->len < size_goal || (flags & MSG_OOB))
+@@ -890,7 +887,7 @@ ssize_t tcp_sendpage(struct socket *sock
+
+ lock_sock(sk);
+ TCP_CHECK_TIMER(sk);
+- res = do_tcp_sendpages(sk, &page, offset, size, flags);
++ res = do_tcp_sendpages(sk, page, offset, size, flags);
+ TCP_CHECK_TIMER(sk);
+ release_sock(sk);
+ return res;
# that the kernel isn't the stock distribution kernel, for example,
# by setting the define to ".local" or ".bz123456"
#
-# % define buildid .local
+%define buildid .mos61
%define distro_build 504.1.3
%define signmodules 1
Source85: config-powerpc64-debug-rhel
Source86: config-s390x-debug-rhel
+# Fix LP#1456605
+Patch1: fix-do_tcp_sendpages.patch
# empty final patch file to facilitate testing of kernel patches
Patch999999: linux-kernel-test.patch
# Dynamically generate kernel .config files from config-* files
make -f %{SOURCE20} VERSION=%{version} configs
+ApplyPatch fix-do_tcp_sendpages.patch
ApplyOptionalPatch linux-kernel-test.patch
# Any further pre-build tree manipulations happen here.