Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760764AbZDWIBk (ORCPT ); Thu, 23 Apr 2009 04:01:40 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757564AbZDWHhO (ORCPT ); Thu, 23 Apr 2009 03:37:14 -0400 Received: from sous-sol.org ([216.99.217.87]:47516 "EHLO x200.localdomain" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757749AbZDWHhM (ORCPT ); Thu, 23 Apr 2009 03:37:12 -0400 Message-Id: <20090423073106.661943296@sous-sol.org> User-Agent: quilt/0.47-1 Date: Thu, 23 Apr 2009 00:21:55 -0700 From: Chris Wright To: linux-kernel@vger.kernel.org, stable@kernel.org Cc: Justin Forbes , Zwane Mwaikambo , "Theodore Ts'o" , Randy Dunlap , Dave Jones , Chuck Wolber , Chris Wedgwood , Michael Krufky , Chuck Ebbert , Domenico Andreoli , Willy Tarreau , Rodrigo Rubira Branco , Jake Edge , Eugene Teo , torvalds@linux-foundation.org, akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk, David Miller , Herbert Xu Subject: [patch 095/100] gso: Fix support for linear packets References: <20090423072020.428683652@sous-sol.org> Content-Disposition: inline; filename=gso-fix-support-for-linear-packets.patch Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1503 Lines: 44 -stable review patch. If anyone has any objections, please let us know. --------------------- From: Herbert Xu upstream commit: 2f181855a0b3c2b39314944add7b41c15647cf86 When GRO/frag_list support was added to GSO, I made an error which broke the support for segmenting linear GSO packets (GSO packets are normally non-linear in the payload). These days most of these packets are constructed by the tun driver, which prefers to allocate linear memory if possible. This is fixed in the latest kernel, but for 2.6.29 and earlier it is still the norm. Therefore this bug causes failures with GSO when used with tun in 2.6.29. Reported-by: James Huang Signed-off-by: Herbert Xu Signed-off-by: David S. Miller Signed-off-by: Chris Wright --- net/core/skbuff.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -2496,7 +2496,7 @@ struct sk_buff *skb_segment(struct sk_bu skb_network_header_len(skb)); skb_copy_from_linear_data(skb, nskb->data, doffset); - if (pos >= offset + len) + if (fskb != skb_shinfo(skb)->frag_list) continue; if (!sg) { -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/