Subject: Re: [PATCH] update rwlock initialization for nat_table

From: Andrew Morton <[email-masked]>
Date: Thu, 11 Dec 2008 14:18:29 -0800

On Wed, 10 Dec 2008 15:06:00 -0500 (EST)
Steven Rostedt <[email-masked]> wrote:

> 
> The following patch is in:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace.git
> 
>     branch: cleanups
> 
> 
> Steven Rostedt (1):
>       update rwlock initialization for nat_table
> 
> ----
>  net/ipv4/netfilter/nf_nat_rule.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> ---------------------------
> commit d4175059c8f95e4cd58e0efaa85610ca59469fbd
> Author: Steven Rostedt <[email-masked]>
> Date:   Wed Dec 10 15:00:09 2008 -0500
> 
>     update rwlock initialization for nat_table
>     
>     Impact: clean up

It's more than a "cleanup"?

>     The commit e099a173573ce1ba171092aee7bb3c72ea686e59
>     (netfilter: netns nat: per-netns NAT table) renamed the
>     nat_table from __nat_table to nat_table without updating the
>     __RW_LOCK_UNLOCKED(__nat_table.lock).
>     
>     Signed-off-by: Steven Rostedt <[email-masked]>
> 
> diff --git a/net/ipv4/netfilter/nf_nat_rule.c b/net/ipv4/netfilter/nf_nat_rule.c
> index bea54a6..8d489e7 100644
> --- a/net/ipv4/netfilter/nf_nat_rule.c
> +++ b/net/ipv4/netfilter/nf_nat_rule.c
> @@ -61,7 +61,7 @@ static struct
>  static struct xt_table nat_table = {
>  	.name		= "nat",
>  	.valid_hooks	= NAT_VALID_HOOKS,
> -	.lock		= __RW_LOCK_UNLOCKED(__nat_table.lock),
> +	.lock		= __RW_LOCK_UNLOCKED(nat_table.lock),
>  	.me		= THIS_MODULE,
>  	.af		= AF_INET,
>  };

At present any lockdep messages relating to this lock will print the
wrong name.  So it's a nanobug, I think?