lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Z9GqOZIlyVPj0eNl@calendula>
Date: Wed, 12 Mar 2025 16:37:29 +0100
From: Pablo Neira Ayuso <pablo@...filter.org>
To: lirongqing <lirongqing@...du.com>
Cc: kadlec@...filter.org, davem@...emloft.net, edumazet@...gle.com,
	kuba@...nel.org, pabeni@...hat.com, horms@...nel.org,
	netfilter-devel@...r.kernel.org, coreteam@...filter.org,
	netdev@...r.kernel.org
Subject: Re: [PATCH] net/netfilter: use kvfree_rcu to simplify the code

> diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
> index 2b8aac2..c751b0a 100644
> --- a/include/linux/netfilter.h
> +++ b/include/linux/netfilter.h
> @@ -111,28 +111,17 @@ struct nf_hook_entry {
>  	void				*priv;
>  };
>  
> -struct nf_hook_entries_rcu_head {
> -	struct rcu_head head;
> -	void	*allocation;
> -};
> -
>  struct nf_hook_entries {
>  	u16				num_hook_entries;
> +	struct rcu_head rcu;

This structure is accessed from the packet path.

>  	/* padding */
>  	struct nf_hook_entry		hooks[];
>  
>  	/* trailer: pointers to original orig_ops of each hook,
> -	 * followed by rcu_head and scratch space used for freeing
> -	 * the structure via call_rcu.
>  	 *
>  	 *   This is not part of struct nf_hook_entry since its only
>  	 *   needed in slow path (hook register/unregister):
>  	 * const struct nf_hook_ops     *orig_ops[]
> -	 *
> -	 *   For the same reason, we store this at end -- its
> -	 *   only needed when a hook is deleted, not during
> -	 *   packet path processing:
> -	 * struct nf_hook_entries_rcu_head     head

I think it is convenient to keep struct rcu_head at the end of it.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ