Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754603Ab1EBTfS (ORCPT ); Mon, 2 May 2011 15:35:18 -0400 Received: from 232.Red-88-26-245.staticIP.rima-tde.net ([88.26.245.232]:47367 "HELO sysvalve.homelinux.net" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with SMTP id S1753642Ab1EBTfP (ORCPT ); Mon, 2 May 2011 15:35:15 -0400 From: =?UTF-8?q?L=2E=20Alberto=20Gim=C3=A9nez?= To: linux-kernel@vger.kernel.org Cc: dgiagio@gmail.com, dborca@yahoo.com, davem@davemloft.net, pmcenery@gmail.com, david.hill@ubisoft.com, linux-usb@vger.kernel.org (open list:USB SUBSYSTEM), netdev@vger.kernel.org (open list:NETWORKING DRIVERS) Subject: [PATCH] ipheth.c: Enable IP header alignment Date: Mon, 2 May 2011 21:35:12 +0200 Message-Id: <1304364912-15444-1-git-send-email-agimenez@sysvalve.es> X-Mailer: git-send-email 1.7.5 In-Reply-To: <1304264799.2833.82.camel@localhost> References: <1304264799.2833.82.camel@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1972 Lines: 55 Since commit ea812ca1b06113597adcd8e70c0f84a413d97544 (x86: Align skb w/ start of cacheline on newer core 2/Xeon Arch), NET_IP_ALIGN changed from 2 to 0, and the constant is used to reserve more room for the socket buffer. Some people have reported that tethering stopped working and David Hill submited a patch that redefined NET_IP_ALIGN. Pointed by Ben Hutchings, the patch has been reworked to use a private constant. I have no more an iPhone device to test it, so it is only compile-tested. Signed-off-by: L. Alberto Giménez --- drivers/net/usb/ipheth.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c index 7d42f9a..8f1ffc7 100644 --- a/drivers/net/usb/ipheth.c +++ b/drivers/net/usb/ipheth.c @@ -80,6 +80,8 @@ #define IPHETH_CARRIER_CHECK_TIMEOUT round_jiffies_relative(1 * HZ) #define IPHETH_CARRIER_ON 0x04 +#define IPHETH_IP_ALIGN 2 + static struct usb_device_id ipheth_table[] = { { USB_DEVICE_AND_INTERFACE_INFO( USB_VENDOR_APPLE, USB_PRODUCT_IPHONE, @@ -205,15 +207,15 @@ static void ipheth_rcvbulk_callback(struct urb *urb) len = urb->actual_length; buf = urb->transfer_buffer; - skb = dev_alloc_skb(NET_IP_ALIGN + len); + skb = dev_alloc_skb(IPHETH_IP_ALIGN + len); if (!skb) { err("%s: dev_alloc_skb: -ENOMEM", __func__); dev->net->stats.rx_dropped++; return; } - skb_reserve(skb, NET_IP_ALIGN); - memcpy(skb_put(skb, len), buf + NET_IP_ALIGN, len - NET_IP_ALIGN); + skb_reserve(skb, IPHETH_IP_ALIGN); + memcpy(skb_put(skb, len), buf + IPHETH_IP_ALIGN, len - IPHETH_IP_ALIGN); skb->dev = dev->net; skb->protocol = eth_type_trans(skb, dev->net); -- 1.7.5 -- 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/