diff mbox series

[v4,11/18] nfnetlink_log: exit_net cleanup check added

Message ID 9702fe4f-6b5d-bd5c-de87-6bf7ded4fbf2@virtuozzo.com
State Superseded, archived
Delegated to: David Miller
Headers show
Series exit_net checks for objects initialized in net_init hook | expand

Commit Message

Vasily Averin Nov. 12, 2017, 8:46 a.m. UTC
Be sure that instance_table array initialized in net_init hook
was return to initial state.

Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
---
 net/netfilter/nfnetlink_log.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Florian Westphal Nov. 12, 2017, 8:53 a.m. UTC | #1
Vasily Averin <vvs@virtuozzo.com> wrote:
> Be sure that instance_table array initialized in net_init hook
> was return to initial state.

Acked-by: Florian Westphal <fw@strlen.de>
Sergei Shtylyov Nov. 12, 2017, 11:28 a.m. UTC | #2
Hello!

On 11/12/2017 11:46 AM, Vasily Averin wrote:

> Be sure that instance_table array initialized in net_init hook
> was return to initial state.
> 
> Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
> ---
>   net/netfilter/nfnetlink_log.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
> index cad6498..80236a2 100644
> --- a/net/netfilter/nfnetlink_log.c
> +++ b/net/netfilter/nfnetlink_log.c
> @@ -1093,10 +1093,15 @@ static int __net_init nfnl_log_net_init(struct net *net)
>   
>   static void __net_exit nfnl_log_net_exit(struct net *net)
>   {
> +	unsigned int i;
> +	struct nfnl_log_net *log = nfnl_log_pernet(net);

    Need empty line after the declarations.

>   #ifdef CONFIG_PROC_FS
>   	remove_proc_entry("nfnetlink_log", net->nf.proc_netfilter);
>   #endif
>   	nf_log_unset(net, &nfulnl_logger);
> +	for (i = 0; i < INSTANCE_BUCKETS; i++)
> +		if (WARN_ON_ONCE(!hlist_empty(&log->instance_table[i])))
> +			break;
>   }
[...]

MBR, Sergei
diff mbox series

Patch

diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
index cad6498..80236a2 100644
--- a/net/netfilter/nfnetlink_log.c
+++ b/net/netfilter/nfnetlink_log.c
@@ -1093,10 +1093,15 @@  static int __net_init nfnl_log_net_init(struct net *net)
 
 static void __net_exit nfnl_log_net_exit(struct net *net)
 {
+	unsigned int i;
+	struct nfnl_log_net *log = nfnl_log_pernet(net);
 #ifdef CONFIG_PROC_FS
 	remove_proc_entry("nfnetlink_log", net->nf.proc_netfilter);
 #endif
 	nf_log_unset(net, &nfulnl_logger);
+	for (i = 0; i < INSTANCE_BUCKETS; i++)
+		if (WARN_ON_ONCE(!hlist_empty(&log->instance_table[i])))
+			break;
 }
 
 static struct pernet_operations nfnl_log_net_ops = {