From: Greg Kroah-Hartman Date: Mon, 1 Aug 2011 22:59:14 +0000 (-0700) Subject: 3.0 patches X-Git-Tag: v2.6.39.4~14 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2622409bea3196b6bc9a164ff35d529fa1a3dc49;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0 patches --- diff --git a/queue-3.0/gro-only-reset-frag0-when-skb-can-be-pulled.patch b/queue-3.0/gro-only-reset-frag0-when-skb-can-be-pulled.patch new file mode 100644 index 00000000000..257de7b877f --- /dev/null +++ b/queue-3.0/gro-only-reset-frag0-when-skb-can-be-pulled.patch @@ -0,0 +1,40 @@ +From 17dd759c67f21e34f2156abcf415e1f60605a188 Mon Sep 17 00:00:00 2001 +From: Herbert Xu +Date: Wed, 27 Jul 2011 06:16:28 -0700 +Subject: gro: Only reset frag0 when skb can be pulled + +From: Herbert Xu + +commit 17dd759c67f21e34f2156abcf415e1f60605a188 upstream. + +Currently skb_gro_header_slow unconditionally resets frag0 and +frag0_len. However, when we can't pull on the skb this leaves +the GRO fields in an inconsistent state. + +This patch fixes this by only resetting those fields after the +pskb_may_pull test. + +Signed-off-by: Herbert Xu +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + include/linux/netdevice.h | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/include/linux/netdevice.h ++++ b/include/linux/netdevice.h +@@ -1688,9 +1688,12 @@ static inline int skb_gro_header_hard(st + static inline void *skb_gro_header_slow(struct sk_buff *skb, unsigned int hlen, + unsigned int offset) + { ++ if (!pskb_may_pull(skb, hlen)) ++ return NULL; ++ + NAPI_GRO_CB(skb)->frag0 = NULL; + NAPI_GRO_CB(skb)->frag0_len = 0; +- return pskb_may_pull(skb, hlen) ? skb->data + offset : NULL; ++ return skb->data + offset; + } + + static inline void *skb_gro_mac_header(struct sk_buff *skb) diff --git a/queue-3.0/series b/queue-3.0/series index a8bbabb76fd..24f09b3418c 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -2,3 +2,4 @@ usb-serial-add-ids-for-winchiphead-usb-rs232-adapter.patch mmc-added-quirks-for-ricoh-1180-e823-lower-base-clock.patch mmc-sdhci-esdhc-imx-sdhci_card_present-does-not-get.patch bridge-send-proper-message_age-in-config-bpdu.patch +gro-only-reset-frag0-when-skb-can-be-pulled.patch