Subject: Re: [PATCH net-next 3/5] net/netfilter: make use of the helper macro LIST_HEAD()

From: Pablo Neira Ayuso <[email-masked]>
Date: Wed, 28 Aug 2024 08:52:45 +0200

On Wed, Aug 28, 2024 at 09:35:35AM +0800, Hongbo Li wrote:
> 
> 
> On 2024/8/28 0:15, Pablo Neira Ayuso wrote:
> > Hi,
> > 
> > On Tue, Aug 27, 2024 at 06:04:05PM +0800, Hongbo Li wrote:
> > > list_head can be initialized automatically with LIST_HEAD()
> > > instead of calling INIT_LIST_HEAD(). Here we can simplify
> > > the code.
> > > 
> > > Signed-off-by: Hongbo Li <[email-masked]>
> > > ---
> > >   net/netfilter/core.c | 4 +---
> > >   1 file changed, 1 insertion(+), 3 deletions(-)
> > > 
> > > diff --git a/net/netfilter/core.c b/net/netfilter/core.c
> > > index b00fc285b334..93642fcd379c 100644
> > > --- a/net/netfilter/core.c
> > > +++ b/net/netfilter/core.c
> > > @@ -655,10 +655,8 @@ void nf_hook_slow_list(struct list_head *head, struct nf_hook_state *state,
> > >   		       const struct nf_hook_entries *e)
> > >   {
> > >   	struct sk_buff *skb, *next;
> > > -	struct list_head sublist;
> > >   	int ret;
> > > -
> > > -	INIT_LIST_HEAD(&sublist);
> > > +	LIST_HEAD(sublist);
> > 
> > comestic:
> > 
> >    	struct sk_buff *skb, *next;
> > 	LIST_HEAD(sublist);          <- here
> >    	int ret;
> > 
> > I think this should be included in the variable declaration area at
> > the beginning of this function.
> 
> It is in the variable declaration area just after ret (with a blank line
> before list_for_each_entry_safe).

Indeed. It is reverse xmas tree what I was missing then.

Thanks.