Message ID | 20240806102808.804619-1-ubizjak@gmail.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | netfilter: nf_tables: Add __percpu annotation to *stats pointer in nf_tables_updchain() | expand |
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>
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
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;
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(-)