From patchwork Sun Nov 5 23:58:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Herbert X-Patchwork-Id: 834419 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="hIV1hDri"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yVXj939JGz9s81 for ; Mon, 6 Nov 2017 10:59:09 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751105AbdKEX6y (ORCPT ); Sun, 5 Nov 2017 18:58:54 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:50158 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751030AbdKEX6w (ORCPT ); Sun, 5 Nov 2017 18:58:52 -0500 Received: by mail-pg0-f68.google.com with SMTP id g6so6835941pgn.6 for ; Sun, 05 Nov 2017 15:58:52 -0800 (PST) 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=hIV1hDri0cB4JFgQCR0OLxzUn9FnprlcajA9YC8r5olQLZiNXII0BeQ4nL+EjEA+nG uN9VF3gu4sKM7w+ctH9D44UGu7wWmPxqRCocHDebzdRj03zAic8HdYeWQBSRlCdQipL3 i8OliQVZQwkQ7j2eLBmsuWKhaGbdS80H9SIqQgu4gu0XLA1wQ/WAr6KNoNXTn2D9Ie3y j8Pf8q+iy8AdGcvg+sRQ2i3spb1xMMlmVgbFlbeRBePXvWUUYCUo+kAgejE5VgpatDoz NV3nhKdGYBD/bm8wu0n+d3Q/vGfuKZcUBMbqrGzV/CACKAf0gip5zN2TTkgxrQ3UB2FA aCfA== 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=URE6nASTmp2gnHkmNsmT1nRQXNrpvNlfCmWNZpnqIuLFOGg+Nospmbhbe6jkR/v9IU 0DSG2PnO5X69E3TTD3n9J50reWr89kg+Zv8Iay4iq7v1oBFhISZtV+shLvo8KmOL6ljR r9bTUiolMZUR8KWaT4IVeyZB6idUy7ecdHq/5TgfJwt2fRF0P6+gVgSXJ7ZvSOARN00O C5E8iIfbPLgo3Nib3SYSPIwEgvaWQ3ygTayr3ocWgp7etGBQcwki0Q7Bk7LASjSXqlkP J2CD4TRw2DiroCJjCHsVhWhFrqa/DyALaeBGe2nOkSh7ouA5/HSaxjzWIHqhlBdSQAxP FBcw== X-Gm-Message-State: AMCzsaWat52w/aZ9fukgOgDzmeSR6dcdWtMDVjpYIXnPeyKE2ZFK335t BYBib/gdLKJktKNy3DHqrLPyh4p6 X-Google-Smtp-Source: ABhQp+TuBSl8I5bosKj/rnHksCiF7iDFAogbOMGWTh9FljxgZmI9sg9puIVFdRNcGz/pNLqe1D4AgA== X-Received: by 10.98.156.210 with SMTP id u79mr14999143pfk.50.1509926332440; Sun, 05 Nov 2017 15:58:52 -0800 (PST) Received: from localhost.localdomain (c-73-162-13-107.hsd1.ca.comcast.net. [73.162.13.107]) by smtp.gmail.com with ESMTPSA id g16sm22585522pfd.87.2017.11.05.15.58.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 05 Nov 2017 15:58:51 -0800 (PST) From: Tom Herbert To: davem@davemloft.net Cc: netdev@vger.kernel.org, rohit@quantonium.net, Tom Herbert Subject: [PATCH v2 net-next 1/5] ila: cleanup checksum diff Date: Sun, 5 Nov 2017 15:58:22 -0800 Message-Id: <20171105235826.2052-2-tom@quantonium.net> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171105235826.2052-1-tom@quantonium.net> References: <20171105235826.2052-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;