Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp654863pxb; Tue, 2 Feb 2021 14:30:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJx/F42Dgi5+TpLGUN7Ldbqn0UgtbtEGI5FeM9D8byTQkVoHtHrEmadegroXmiQAkglInjZG X-Received: by 2002:a17:906:17d5:: with SMTP id u21mr176062eje.109.1612305058619; Tue, 02 Feb 2021 14:30:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612305058; cv=none; d=google.com; s=arc-20160816; b=iBbtb/6222BpgBSHf4+H7eAmuQM47weHgC+j+zLd+uv0SaMayYs14OBKoTd8KGMMwv iV55pBzMcQ20QxFWP5+dyS4Abu9eJNs+RXpo9m+h828ioTf5hRdYSJQ1ar9u6NcpUGC+ TbepaURBuXLbL+tDK+ZuLz9yg/ry/J5SMqmq0qofJtI6+d+nQz0n33pMJ0j4Msrh6R7Y j5ARsOI+U0YDlnLheX8uEFSpzwKq1CWT3KOrWkJ2DZsb9+25SW2Dk/h1Xtq26R/nDC5T qSLuxsJT4qk9wjrcTYbpoyeCe5Wo5By9g/YMVP0GJB+yp4+KYRTFEENosIzX56tCQwRb Q7Ww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=pSWchO0DJsey7S4ccftOYU9IqSpIddUZ0NEQ4JfYbkI=; b=O/0vPG+6BUm2A5Uilkn6CjQCW58FJ+UUAZPNnTdLNiMyFZFJ5pt8PSIQOR+5JQV032 kYGeMtwdekQEOpjMIa++cROW9NVxGcuO258yt/1E0VMYdGChH/KZbmWoBamVnhUfe8bM lFW3C+q3ISK6sID4ghcNZcvfWvmkH6ygPikEfHEo+oB9fggeDdiMkd8GJkNGkFnuYZKZ 5utyn+0qKO9WrDy+KqkRK76B05jyK+lCRD0XCY9iAKZLWQwA9+kgWxMfHe/Bn7Qdhz7y yEV65u2b6RV3fmLLC5+p9ZbOZBXg9atxnYDLbRgbdR9H15A/WcdQxxlTUKcZ8OryVhwf 8cjQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=nJ1ShaVK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cs15si122685ejc.502.2021.02.02.14.30.32; Tue, 02 Feb 2021 14:30:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=nJ1ShaVK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234973AbhBBO7u (ORCPT + 99 others); Tue, 2 Feb 2021 09:59:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33544 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234916AbhBBO6A (ORCPT ); Tue, 2 Feb 2021 09:58:00 -0500 Received: from mail-il1-x130.google.com (mail-il1-x130.google.com [IPv6:2607:f8b0:4864:20::130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5B9EAC0613ED for ; Tue, 2 Feb 2021 06:57:20 -0800 (PST) Received: by mail-il1-x130.google.com with SMTP id e1so19296234ilu.0 for ; Tue, 02 Feb 2021 06:57:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=pSWchO0DJsey7S4ccftOYU9IqSpIddUZ0NEQ4JfYbkI=; b=nJ1ShaVKCsHxZx01uF61qyG31gHmhGVjrrV6uP9bW+zJwowf6M4VHULyDy30dKA08J aTkufV+ts5lwAcQRHmJgBnCq+ne0+hrtvzuGSRmqgsqTsXfDPKwzF8yaoGoZhIbSBB3u PWu7BGXMf53G/Ssf6fy7z0haENutZ28wzhnfjEpFxNnG2heAuYiDAhHtsOAGyYbEpKKg 6dYIR+en+rIwTGktb+NjPqBkoBMlqF837SkbFlfUDWXX8VghYkyPCDc/wgOXTAU0WzLI 19JF9T0gb+88iFQJaX3a1RAErxvaZPMmXK1y5mGrtDsmb4XTo/Tq2vLJNkQjoaU/w1YC jxKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=pSWchO0DJsey7S4ccftOYU9IqSpIddUZ0NEQ4JfYbkI=; b=nDJC9CPE3WWWS/xgFLpZviYogQE+76v2CVN1zQCJx9SFpjVRb/UGjwPYf1BOHOc9y/ Ixfrt6hiXfHQyNwzcGT9mSL2g5eAYtdoJg/1JkVjK6EbkHHLZYOtE5mRV5XwdEFEb5df btTsgxFffs1FrJwbKf/78x2sGXfDsEIADictJzchjzD0Tj8m88B8MKudxKxmYp7gkpye PrnFjtjd1lCdczd6SLB2btCIWKBMsKNt9AvMqQ2mC+8mRnoRdsSyNjs99U+UE1V0UMSW fDquuqUusMN0n63aQz4/DaNEzJRsGTeRBTML2K4yUaOez3TBc33Svn+w3IyL6U8x/C8y gMxQ== X-Gm-Message-State: AOAM5303pmhu1ZN+itsKurDn7S4DBpdtMZRl0NZcw2VPHbeKEFKBKsW0 /n3krBFN5BAbSjmHXhWjzuAIOWhQYbMtKWBGe2TRgQ== X-Received: by 2002:a05:6e02:1251:: with SMTP id j17mr4153271ilq.216.1612277839358; Tue, 02 Feb 2021 06:57:19 -0800 (PST) MIME-Version: 1.0 References: <20210202135544.3262383-1-leon@kernel.org> <20210202135544.3262383-4-leon@kernel.org> In-Reply-To: <20210202135544.3262383-4-leon@kernel.org> From: Eric Dumazet Date: Tue, 2 Feb 2021 15:57:07 +0100 Message-ID: Subject: Re: [PATCH net 3/4] net/core: move ipv6 gro function declarations to net/ipv6 To: Leon Romanovsky Cc: Jakub Kicinski , "David S. Miller" , Pablo Neira Ayuso , Leon Romanovsky , coreteam@netfilter.org, Florian Westphal , Hideaki YOSHIFUJI , Jozsef Kadlecsik , Julian Anastasov , LKML , lvs-devel@vger.kernel.org, Matteo Croce , netdev , netfilter-devel@vger.kernel.org, Simon Horman Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 2, 2021 at 2:56 PM Leon Romanovsky wrote: > > From: Leon Romanovsky > > Fir the following compilation warnings: > 1031 | INDIRECT_CALLABLE_SCOPE void udp_v6_early_demux(struct sk_buff *s= kb) > > net/ipv6/ip6_offload.c:182:41: warning: no previous prototype for =E2=80= =98ipv6_gro_receive=E2=80=99 [-Wmissing-prototypes] > 182 | INDIRECT_CALLABLE_SCOPE struct sk_buff *ipv6_gro_receive(struct l= ist_head *head, > | ^~~~~~~~~~~~~~~~ > net/ipv6/ip6_offload.c:320:29: warning: no previous prototype for =E2=80= =98ipv6_gro_complete=E2=80=99 [-Wmissing-prototypes] > 320 | INDIRECT_CALLABLE_SCOPE int ipv6_gro_complete(struct sk_buff *skb= , int nhoff) > | ^~~~~~~~~~~~~~~~~ > net/ipv6/ip6_offload.c:182:41: warning: no previous prototype for =E2=80= =98ipv6_gro_receive=E2=80=99 [-Wmissing-prototypes] > 182 | INDIRECT_CALLABLE_SCOPE struct sk_buff *ipv6_gro_receive(struct l= ist_head *head, > | ^~~~~~~~~~~~~~~~ > net/ipv6/ip6_offload.c:320:29: warning: no previous prototype for =E2=80= =98ipv6_gro_complete=E2=80=99 [-Wmissing-prototypes] > 320 | INDIRECT_CALLABLE_SCOPE int ipv6_gro_complete(struct sk_buff *skb= , int nhoff) > > Fixes: aaa5d90b395a ("net: use indirect call wrappers at GRO network laye= r") > Signed-off-by: Leon Romanovsky > --- > include/net/ipv6.h | 3 +++ > net/core/dev.c | 4 +--- > 2 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/include/net/ipv6.h b/include/net/ipv6.h > index bd1f396cc9c7..68676e6bd4b1 100644 > --- a/include/net/ipv6.h > +++ b/include/net/ipv6.h > @@ -1265,4 +1265,7 @@ static inline void ip6_sock_set_recvpktinfo(struct = sock *sk) > release_sock(sk); > } > > +INDIRECT_CALLABLE_DECLARE(struct sk_buff *ipv6_gro_receive(struct list_h= ead *, > + struct sk_buff= *)); > +INDIRECT_CALLABLE_DECLARE(int ipv6_gro_complete(struct sk_buff *, int)); I think we should move this to a new include file. These declarations were static, and had to be made public only because of DIRECT call stuff, which is an implementation detail. Polluting include/net/ipv6.h seems not appropriate. > #endif /* _NET_IPV6_H */ > diff --git a/net/core/dev.c b/net/core/dev.c > index c360bb5367e2..9a3d8768524b 100644 > --- a/net/core/dev.c > +++ b/net/core/dev.c > @@ -101,6 +101,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -5743,7 +5744,6 @@ static void gro_normal_one(struct napi_struct *napi= , struct sk_buff *skb) > } > > INDIRECT_CALLABLE_DECLARE(int inet_gro_complete(struct sk_buff *, int)); This is odd. You move ipv6_gro_complete() but not inet_gro_complete() I think we should be consistent. > -INDIRECT_CALLABLE_DECLARE(int ipv6_gro_complete(struct sk_buff *, int)); > static int napi_gro_complete(struct napi_struct *napi, struct sk_buff *s= kb) > { > struct packet_offload *ptype; > @@ -5914,8 +5914,6 @@ static void gro_flush_oldest(struct napi_struct *na= pi, struct list_head *head) > > INDIRECT_CALLABLE_DECLARE(struct sk_buff *inet_gro_receive(struct list_h= ead *, > struct sk_buff= *)); > -INDIRECT_CALLABLE_DECLARE(struct sk_buff *ipv6_gro_receive(struct list_h= ead *, > - struct sk_buff= *)); > static enum gro_result dev_gro_receive(struct napi_struct *napi, struct = sk_buff *skb) > { > u32 hash =3D skb_get_hash_raw(skb) & (GRO_HASH_BUCKETS - 1); > -- > 2.29.2 >