net: splice: avoid high order page splitting
authorEric Dumazet <edumazet@google.com>
Sat, 5 Jan 2013 21:31:18 +0000 (21:31 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Feb 2013 18:48:37 +0000 (10:48 -0800)
commit4dd53a6c90a9045524888de2930b56b7833175b2
tree2fd4c0abc0d665fa33c555a4cbead9aed9de01ee
parent0f0ac9b6a73fe6025723fa4a51c8da2ccead6bff
net: splice: avoid high order page splitting

[ Upstream commit 82bda6195615891181115f579a480aa5001ce7e9 ]

splice() can handle pages of any order, but network code tries hard to
split them in PAGE_SIZE units. Not quite successfully anyway, as
__splice_segment() assumed poff < PAGE_SIZE. This is true for
the skb->data part, not necessarily for the fragments.

This patch removes this logic to give the pages as they are in the skb.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Willy Tarreau <w@1wt.eu>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/core/skbuff.c