Subject: Re: [PATCH] netfilter: nf_tables: Add __percpu annotation to *stats pointer in nf_tables_updchain()

From: Simon Horman <[email-masked]>
Date: Thu, 8 Aug 2024 16:28:08 +0100

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 <[email-masked]>
> Cc: Pablo Neira Ayuso <[email-masked]>
> Cc: Jozsef Kadlecsik <[email-masked]>
> Cc: "David S. Miller" <[email-masked]>
> Cc: Eric Dumazet <[email-masked]>
> Cc: Jakub Kicinski <[email-masked]>
> Cc: Paolo Abeni <[email-masked]>
> ---
>  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 <[email-masked]>