From patchwork Thu Mar 7 23:21:40 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pravin B Shelar X-Patchwork-Id: 225996 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 74C0A2C03A8 for ; Fri, 8 Mar 2013 10:20:20 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760008Ab3CGXUN (ORCPT ); Thu, 7 Mar 2013 18:20:13 -0500 Received: from na3sys009aog127.obsmtp.com ([74.125.149.107]:44306 "HELO na3sys009aog127.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1755660Ab3CGXUM (ORCPT ); Thu, 7 Mar 2013 18:20:12 -0500 Received: from mail-qe0-f70.google.com ([209.85.128.70]) (using TLSv1) by na3sys009aob127.postini.com ([74.125.148.12]) with SMTP ID DSNKUTkgq8j8/X5CIwt6mwq3M9EhgHBJdK5o@postini.com; Thu, 07 Mar 2013 15:20:12 PST Received: by mail-qe0-f70.google.com with SMTP id a11so1831179qen.5 for ; Thu, 07 Mar 2013 15:20:11 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:x-received:from:to:cc:subject:date:message-id:x-mailer :x-gm-message-state; bh=paZ4PwJqsORzUytXbns2xZiuuT7s5SVYpHb79W2sL8M=; b=e/s1theQpC6o/P0oGcySnOOubm7a7084vsDGRkvFQoAxBKaesQmR3/RNKtGi0ayBON +117xg88Fm82ZHTDnr9jsKrt+WbvWBhYSiNlTMP2M1K2qp6lj2zbGjLaYvLpEtxiv7U6 HlKF1jDWUDXc9Hy/FWv2yWfiKPGM0m+d/QZMMcQMHvmlJn3OUfenvRXjyHgI4RAU3nJA oArle+EULLCoBD4+DHycbCsf2vmrs5HDfv+4KNU67X148q0nP/mTBAGTcuXJJZ1aptEC R6EtNILU9tmHNJjeBHc4dQruC5H/q3AEaMKCMKUtDjHgb4OF5AeOaYcmBt0UUmzeKvf/ /1EA== X-Received: by 10.236.131.232 with SMTP id m68mr61441yhi.100.1362698411760; Thu, 07 Mar 2013 15:20:11 -0800 (PST) X-Received: by 10.236.131.232 with SMTP id m68mr61434yhi.100.1362698411675; Thu, 07 Mar 2013 15:20:11 -0800 (PST) Received: from localhost ([64.125.181.92]) by mx.google.com with ESMTPS id c10sm4735232yhl.27.2013.03.07.15.20.10 (version=TLSv1.1 cipher=RC4-SHA bits=128/128); Thu, 07 Mar 2013 15:20:11 -0800 (PST) From: Pravin B Shelar To: davem@davemloft.net, netdev@vger.kernel.org Cc: jesse@nicira.com, Pravin B Shelar Subject: [PATCH net-next 1/4] net: Add skb_headers_offset_update helper function. Date: Thu, 7 Mar 2013 15:21:40 -0800 Message-Id: <1362698500-2411-1-git-send-email-pshelar@nicira.com> X-Mailer: git-send-email 1.7.12.315.g682ce8b X-Gm-Message-State: ALoCoQmyUgwwztVQX04kRQTEcG3pvaAmAUnCWEE/Zt3DSbm/jI//MrXhy62DCRPHudeDAsQrvySQu0Iaen58fpaiMu2467oHWal30LnrbpKC+2sISq5qrUZei+4eOyJ0kZjzZbXnrNgG+mZpky2eCk0nk1PjipAay3l6T5tOMryT0ReZJwaQ7F8= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This function will be used in next VXLAN_GSO patch. This patch does not change any functionality. Signed-off-by: Pravin B Shelar --- net/core/skbuff.c | 34 ++++++++++++++-------------------- 1 files changed, 14 insertions(+), 20 deletions(-) diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 33245ef..b3e8db8 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -867,6 +867,17 @@ struct sk_buff *skb_clone(struct sk_buff *skb, gfp_t gfp_mask) } EXPORT_SYMBOL(skb_clone); +static void skb_headers_offset_update(struct sk_buff *skb, int off) +{ + /* {transport,network,mac}_header and tail are relative to skb->head */ + skb->transport_header += off; + skb->network_header += off; + if (skb_mac_header_was_set(skb)) + skb->mac_header += off; + skb->inner_transport_header += off; + skb->inner_network_header += off; +} + static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old) { #ifndef NET_SKBUFF_DATA_USES_OFFSET @@ -879,13 +890,7 @@ static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old) __copy_skb_header(new, old); #ifndef NET_SKBUFF_DATA_USES_OFFSET - /* {transport,network,mac}_header are relative to skb->head */ - new->transport_header += offset; - new->network_header += offset; - if (skb_mac_header_was_set(new)) - new->mac_header += offset; - new->inner_transport_header += offset; - new->inner_network_header += offset; + skb_headers_offset_update(new, offset); #endif skb_shinfo(new)->gso_size = skb_shinfo(old)->gso_size; skb_shinfo(new)->gso_segs = skb_shinfo(old)->gso_segs; @@ -1077,14 +1082,8 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail, #else skb->end = skb->head + size; #endif - /* {transport,network,mac}_header and tail are relative to skb->head */ skb->tail += off; - skb->transport_header += off; - skb->network_header += off; - if (skb_mac_header_was_set(skb)) - skb->mac_header += off; - skb->inner_transport_header += off; - skb->inner_network_header += off; + skb_headers_offset_update(skb, off); /* Only adjust this if it actually is csum_start rather than csum */ if (skb->ip_summed == CHECKSUM_PARTIAL) skb->csum_start += nhead; @@ -1180,12 +1179,7 @@ struct sk_buff *skb_copy_expand(const struct sk_buff *skb, if (n->ip_summed == CHECKSUM_PARTIAL) n->csum_start += off; #ifdef NET_SKBUFF_DATA_USES_OFFSET - n->transport_header += off; - n->network_header += off; - if (skb_mac_header_was_set(skb)) - n->mac_header += off; - n->inner_transport_header += off; - n->inner_network_header += off; + skb_headers_offset_update(n, off); #endif return n;