net/netfilter/nf_tables_api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Compiling nf_tables_api.c results in several sparse warnings:
nf_tables_api.c:2740:23: warning: incorrect type in assignment (different address spaces)
nf_tables_api.c:2752:38: warning: incorrect type in assignment (different address spaces)
nf_tables_api.c:2798:21: warning: incorrect type in argument 1 (different address spaces)
Add __percpu annotation to *stats pointer to fix these warnings.
Found by GCC's named address space checks.
There were no changes in the resulting object files.
Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Cc: Pablo Neira Ayuso <pablo@netfilter.org>
Cc: Jozsef Kadlecsik <kadlec@netfilter.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
---
net/netfilter/nf_tables_api.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index 481ee78e77bc..805227131f10 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -2642,7 +2642,7 @@ static int nf_tables_updchain(struct nft_ctx *ctx, u8 genmask, u8 policy,
struct nft_table *table = ctx->table;
struct nft_chain *chain = ctx->chain;
struct nft_chain_hook hook = {};
- struct nft_stats *stats = NULL;
+ struct nft_stats __percpu *stats = NULL;
struct nft_hook *h, *next;
struct nf_hook_ops *ops;
struct nft_trans *trans;
--
2.45.2
On Tue, Aug 06, 2024 at 12:26:58PM +0200, Uros Bizjak wrote:
> Compiling nf_tables_api.c results in several sparse warnings:
>
> nf_tables_api.c:2740:23: warning: incorrect type in assignment (different address spaces)
> nf_tables_api.c:2752:38: warning: incorrect type in assignment (different address spaces)
> nf_tables_api.c:2798:21: warning: incorrect type in argument 1 (different address spaces)
>
> Add __percpu annotation to *stats pointer to fix these warnings.
>
> Found by GCC's named address space checks.
>
> There were no changes in the resulting object files.
I never replied to this.
I can see this is getting things better, but still more sparse
warnings show up related tho nft_stats. I'd prefer those are fixed at
ones, would you give it a look?
> Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
> Cc: Pablo Neira Ayuso <pablo@netfilter.org>
> Cc: Jozsef Kadlecsik <kadlec@netfilter.org>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Eric Dumazet <edumazet@google.com>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: Paolo Abeni <pabeni@redhat.com>
> ---
> net/netfilter/nf_tables_api.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
> index 481ee78e77bc..805227131f10 100644
> --- a/net/netfilter/nf_tables_api.c
> +++ b/net/netfilter/nf_tables_api.c
> @@ -2642,7 +2642,7 @@ static int nf_tables_updchain(struct nft_ctx *ctx, u8 genmask, u8 policy,
> struct nft_table *table = ctx->table;
> struct nft_chain *chain = ctx->chain;
> struct nft_chain_hook hook = {};
> - struct nft_stats *stats = NULL;
> + struct nft_stats __percpu *stats = NULL;
> struct nft_hook *h, *next;
> struct nf_hook_ops *ops;
> struct nft_trans *trans;
> --
> 2.45.2
>
On Wed, Aug 28, 2024 at 4:53 PM Pablo Neira Ayuso <pablo@netfilter.org> wrote: > > On Tue, Aug 06, 2024 at 12:26:58PM +0200, Uros Bizjak wrote: > > Compiling nf_tables_api.c results in several sparse warnings: > > > > nf_tables_api.c:2740:23: warning: incorrect type in assignment (different address spaces) > > nf_tables_api.c:2752:38: warning: incorrect type in assignment (different address spaces) > > nf_tables_api.c:2798:21: warning: incorrect type in argument 1 (different address spaces) > > > > Add __percpu annotation to *stats pointer to fix these warnings. > > > > Found by GCC's named address space checks. > > > > There were no changes in the resulting object files. > > I never replied to this. > > I can see this is getting things better, but still more sparse > warnings show up related tho nft_stats. I'd prefer those are fixed at > ones, would you give it a look? Yes, I have a follow-up patch that also fixes the remaining warnings, but it depends on a patch [1] that is on the way to mainline through the mm tree. I can post the complete patch that uses percpu variants of ERR_PTR, IS_ERR and PTR_ERR where needed if this dependency can temporarily be tolerated. [1] https://lore.kernel.org/lkml/20240818210235.33481-1-ubizjak@gmail.com/ Thanks, Uros.
On Wed, Aug 28, 2024 at 09:29:14PM +0200, Uros Bizjak wrote: > On Wed, Aug 28, 2024 at 4:53 PM Pablo Neira Ayuso <pablo@netfilter.org> wrote: > > > > On Tue, Aug 06, 2024 at 12:26:58PM +0200, Uros Bizjak wrote: > > > Compiling nf_tables_api.c results in several sparse warnings: > > > > > > nf_tables_api.c:2740:23: warning: incorrect type in assignment (different address spaces) > > > nf_tables_api.c:2752:38: warning: incorrect type in assignment (different address spaces) > > > nf_tables_api.c:2798:21: warning: incorrect type in argument 1 (different address spaces) > > > > > > Add __percpu annotation to *stats pointer to fix these warnings. > > > > > > Found by GCC's named address space checks. > > > > > > There were no changes in the resulting object files. > > > > I never replied to this. > > > > I can see this is getting things better, but still more sparse > > warnings show up related tho nft_stats. I'd prefer those are fixed at > > ones, would you give it a look? > > Yes, I have a follow-up patch that also fixes the remaining warnings, > but it depends on a patch [1] that is on the way to mainline through > the mm tree. > > I can post the complete patch that uses percpu variants of ERR_PTR, > IS_ERR and PTR_ERR where needed if this dependency can temporarily be > tolerated. > > [1] https://lore.kernel.org/lkml/20240818210235.33481-1-ubizjak@gmail.com/ Thanks for explaining. Post the patch to netfilter-devel@vger.kernel.org explaining the dependency so it sits there and I remember about it while it gets upstream. If there is any issue and this patch does not reach mm tree, let me know. Thanks
On Tue, Aug 06, 2024 at 12:26:58PM +0200, Uros Bizjak wrote:
> Compiling nf_tables_api.c results in several sparse warnings:
>
> nf_tables_api.c:2740:23: warning: incorrect type in assignment (different address spaces)
> nf_tables_api.c:2752:38: warning: incorrect type in assignment (different address spaces)
> nf_tables_api.c:2798:21: warning: incorrect type in argument 1 (different address spaces)
>
> Add __percpu annotation to *stats pointer to fix these warnings.
>
> Found by GCC's named address space checks.
>
> There were no changes in the resulting object files.
>
> Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
> Cc: Pablo Neira Ayuso <pablo@netfilter.org>
> Cc: Jozsef Kadlecsik <kadlec@netfilter.org>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Eric Dumazet <edumazet@google.com>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: Paolo Abeni <pabeni@redhat.com>
> ---
> net/netfilter/nf_tables_api.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
> index 481ee78e77bc..805227131f10 100644
> --- a/net/netfilter/nf_tables_api.c
> +++ b/net/netfilter/nf_tables_api.c
> @@ -2642,7 +2642,7 @@ static int nf_tables_updchain(struct nft_ctx *ctx, u8 genmask, u8 policy,
> struct nft_table *table = ctx->table;
> struct nft_chain *chain = ctx->chain;
> struct nft_chain_hook hook = {};
> - struct nft_stats *stats = NULL;
> + struct nft_stats __percpu *stats = NULL;
> struct nft_hook *h, *next;
> struct nf_hook_ops *ops;
> struct nft_trans *trans;
Thanks, I agree that users of this local variable expect it
to be annotated as __percpu.
Reviewed-by: Simon Horman <horms@kernel.org>
© 2016 - 2025 Red Hat, Inc.