Re: [PATCH v2] netfilter: amanda: fix RCU pointer typing for nf_nat_amanda_hook

From: sun jian

Date: Tue Feb 03 2026 - 11:28:35 EST


On Tue, Feb 3, 2026 at 11:04 PM Florian Westphal <fw@xxxxxxxxx> wrote:
>
> Sun Jian <sun.jian.kdev@xxxxxxxxx> wrote:
> > enum amanda_strings {
> > @@ -98,7 +98,12 @@ static int amanda_help(struct sk_buff *skb,
> > u_int16_t len;
> > __be16 port;
> > int ret = NF_ACCEPT;
> > - typeof(nf_nat_amanda_hook) nf_nat_amanda;
> > + unsigned int (*nf_nat_amanda)(struct sk_buff *skb,
> > + enum ip_conntrack_info ctinfo,
> > + unsigned int protoff,
> > + unsigned int matchoff,
> > + unsigned int matchlen,
> > + struct nf_conntrack_expect *exp);
>
> Why is that needed?
Correct. Manual declaration is indeed verbose.

The reason I used it was that typeof(nf_nat_amanda_hook) carries over
the __rcu attribute to the local variable, which triggers a Sparse
warning when assigning the result of rcu_dereference().

I will switch to typeof(*nf_nat_amanda_hook) *nf_nat_amanda in V3.
Thanks for the guidance!

Regards,

Sun