From patchwork Thu Nov 2 21:20:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Herbert X-Patchwork-Id: 833556 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=quantonium-net.20150623.gappssmtp.com header.i=@quantonium-net.20150623.gappssmtp.com header.b="kynK0KJX"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ySdLr2Wh1z9sNd for ; Fri, 3 Nov 2017 08:21:40 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964956AbdKBVV1 (ORCPT ); Thu, 2 Nov 2017 17:21:27 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:55149 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964940AbdKBVVX (ORCPT ); Thu, 2 Nov 2017 17:21:23 -0400 Received: by mail-pf0-f194.google.com with SMTP id n89so611940pfk.11 for ; Thu, 02 Nov 2017 14:21:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantonium-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=D2mOG4JwtIZMroImlizjyuc7L85p89WVFk/CYPc3xV4=; b=kynK0KJX69IzdNfOWrbesKQdm+8d5hJ6tiAXGAGGgAk/vA+zTCS1w62RLovHgQALHo VcgjGukqLCLcN9KRyk7lmAFMxLt2hE2AbvxWl+JxsU+ml8CmUAUxU/iAyK5KoItWqmvu xqtzq3OPT0LjQfYqVxaZQiC0g0Ml7W7bjMkHG4LJPpH09PzAPFr8O/JsEOXccQd201H9 /ROOPSbTxT5ayVlqTF2yaXlUhdCitiQYVpyHjItuBUAX6wSPIKm0piicSc+ryrfpLZ33 IfL+00QkyNwfn/g/03R0yEBCis+ZtawU9RSXmaDvasDLzySo40GYaizEca02zp8ULd2F 84lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=D2mOG4JwtIZMroImlizjyuc7L85p89WVFk/CYPc3xV4=; b=nkVoXFn/i5LK7AAjBilIVkkFYRAUo4oW32somFOMTH+Z36nY8aXLrvSMxZyb0p7+ee +8dBCfsL6vx1viw/01UNxJCeKVM3XvP0Z4cuGZGN23K2v+ffUDeqqi/S6qN8e9SQbJD9 KsGhYraNmyJev08r6NuEPAoCpp9C9PCmA2MacPcQ89V4stwL1FTSeOnUPwB8NQgx95em QLikC05HCJadAxsH+zkTrjLEcPqy1i9y7wjKY/Tii/DokAomfnqAXUd+3ffIf+fZkPsT bD/4KNff/aHnTa3zko7OZqvffAWb4FZZs2SLnvfGjC415XJXjnjVFXHBpxMH7LNUkZy8 a3vA== X-Gm-Message-State: AMCzsaXriKzYCiy9Xjk9UfO42Saog/75dcjqNb1/u18jcAualH3VviDF RkvL5xaoCUnMLSYC6BO4Q9VbaQ== X-Google-Smtp-Source: ABhQp+StfLMA8qNswAML2pUhBLrEZ0Kgr8Judzfi/RS5S1U1IRExGUWHwozEGZWu0Cj4uzVQAEUAtw== X-Received: by 10.98.69.86 with SMTP id s83mr5392518pfa.32.1509657683317; Thu, 02 Nov 2017 14:21:23 -0700 (PDT) Received: from localhost.localdomain (c-73-162-13-107.hsd1.ca.comcast.net. [73.162.13.107]) by smtp.gmail.com with ESMTPSA id m195sm8224734pga.13.2017.11.02.14.21.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 02 Nov 2017 14:21:22 -0700 (PDT) From: Tom Herbert To: davem@davemloft.net Cc: netdev@vger.kernel.org, rohit@quantonium.net, Tom Herbert Subject: [PATCH net-next 1/4] ila: cleanup checksum diff Date: Thu, 2 Nov 2017 14:20:55 -0700 Message-Id: <20171102212058.9157-2-tom@quantonium.net> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171102212058.9157-1-tom@quantonium.net> References: <20171102212058.9157-1-tom@quantonium.net> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Consolidate computing checksum diff into one function. Add get_csum_diff_iaddr that computes the checksum diff between an address argument and locator being written. get_csum_diff calls this using the destination address in the IP header as the argument. Also moved ila_init_saved_csum to be close to the checksum diff functions. Signed-off-by: Tom Herbert --- net/ipv6/ila/ila_common.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/net/ipv6/ila/ila_common.c b/net/ipv6/ila/ila_common.c index aba0998ddbfb..f1d9248d8b86 100644 --- a/net/ipv6/ila/ila_common.c +++ b/net/ipv6/ila/ila_common.c @@ -13,15 +13,28 @@ #include #include "ila.h" -static __wsum get_csum_diff(struct ipv6hdr *ip6h, struct ila_params *p) +void ila_init_saved_csum(struct ila_params *p) { - struct ila_addr *iaddr = ila_a2i(&ip6h->daddr); + if (!p->locator_match.v64) + return; + + p->csum_diff = compute_csum_diff8( + (__be32 *)&p->locator, + (__be32 *)&p->locator_match); +} +static __wsum get_csum_diff_iaddr(struct ila_addr *iaddr, struct ila_params *p) +{ if (p->locator_match.v64) return p->csum_diff; else - return compute_csum_diff8((__be32 *)&iaddr->loc, - (__be32 *)&p->locator); + return compute_csum_diff8((__be32 *)&p->locator, + (__be32 *)&iaddr->loc); +} + +static __wsum get_csum_diff(struct ipv6hdr *ip6h, struct ila_params *p) +{ + return get_csum_diff_iaddr(ila_a2i(&ip6h->daddr), p); } static void ila_csum_do_neutral(struct ila_addr *iaddr, @@ -30,13 +43,7 @@ static void ila_csum_do_neutral(struct ila_addr *iaddr, __sum16 *adjust = (__force __sum16 *)&iaddr->ident.v16[3]; __wsum diff, fval; - /* Check if checksum adjust value has been cached */ - if (p->locator_match.v64) { - diff = p->csum_diff; - } else { - diff = compute_csum_diff8((__be32 *)&p->locator, - (__be32 *)iaddr); - } + diff = get_csum_diff_iaddr(iaddr, p); fval = (__force __wsum)(ila_csum_neutral_set(iaddr->ident) ? CSUM_NEUTRAL_FLAG : ~CSUM_NEUTRAL_FLAG); @@ -134,16 +141,6 @@ void ila_update_ipv6_locator(struct sk_buff *skb, struct ila_params *p, iaddr->loc = p->locator; } -void ila_init_saved_csum(struct ila_params *p) -{ - if (!p->locator_match.v64) - return; - - p->csum_diff = compute_csum_diff8( - (__be32 *)&p->locator, - (__be32 *)&p->locator_match); -} - static int __init ila_init(void) { int ret;