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] [thread-next>] [day] [month] [year] [list]
Message-Id: <20080107145624.05918cea.dada1@cosmosbay.com>
Date:	Mon, 7 Jan 2008 14:56:24 +0100
From:	Eric Dumazet <dada1@...mosbay.com>
To:	Herbert Xu <herbert@...dor.apana.org.au>
Cc:	davem@...emloft.net, netdev@...r.kernel.org,
	viro@...IV.linux.org.uk
Subject: Re: [IPV4] ROUTE: Avoid sparse warnings

On Mon, 07 Jan 2008 23:11:53 +1100
Herbert Xu <herbert@...dor.apana.org.au> wrote:

> Eric Dumazet <dada1@...mosbay.com> wrote:
> >  CHECK   net/ipv4/route.c
> > net/ipv4/route.c:298:2: warning: context imbalance in 'rt_cache_get_first' - wrong count at exit
> > net/ipv4/route.c:307:3: warning: context imbalance in 'rt_cache_get_next' - unexpected unlock
> > net/ipv4/route.c:346:3: warning: context imbalance in 'rt_cache_seq_stop' - unexpected unlock
> > 
> > Signed-off-by: Eric Dumazet <dada1@...mosbay.com>
> > 
> > diff --git a/net/ipv4/route.c b/net/ipv4/route.c
> > index 10915bb..fec0571 100644
> > --- a/net/ipv4/route.c
> > +++ b/net/ipv4/route.c
> > @@ -289,11 +289,11 @@ static struct rtable *rt_cache_get_first(struct seq_file *seq)
> >        struct rt_cache_iter_state *st = seq->private;
> > 
> >        for (st->bucket = rt_hash_mask; st->bucket >= 0; --st->bucket) {
> > -               rcu_read_lock_bh();
> >                r = rt_hash_table[st->bucket].chain;
> >                if (r)
> >                        break;
> >                rcu_read_unlock_bh();
> > +               rcu_read_lock_bh();
> 
> If we have to change perfectly working code to silence sparse then
> either sparse or we are doing something wrong.
> 
> This is not the only spot where we conditionally hold the lock.
> There's got to be a better fix than changing all of them to hold
> locks unconditionally.

Maybe sparse (or me :) ) is a litle bit dumb :(

You are right other functions conditionally hold some lock(s), but in this
case this is not really necessary / worth the complexity.

AFAIK, this patch reduces complexity and text size.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ