netdev
[Top] [All Lists]

Re: [NET] Fix neighbour tbl->entries race

To: jamal <hadi@xxxxxxxxxx>
Subject: Re: [NET] Fix neighbour tbl->entries race
From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 3 Nov 2004 07:37:20 +1100
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <1099404823.1021.15.camel@xxxxxxxxxxxxxxxx>
References: <20041102112651.GA8633@xxxxxxxxxxxxxxxxxxx> <1099404823.1021.15.camel@xxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.5.6+20040722i
On Tue, Nov 02, 2004 at 09:13:43AM -0500, jamal wrote:
> 
> Is this still the same logic:
> 
> -------------
> -               if (!neigh_forced_gc(tbl) &&
> -                   tbl->entries > tbl->gc_thresh3)
> -                       goto out;
> +               neigh_forced_gc(tbl);
> +               if (atomic_read(&tbl->entries) > tbl->gc_thresh3)
> +                       goto out_entries;
> 
> -------
> 
> In previous code it seems you should short-circuit if
> neigh_forced_gc(tbl) returns non-zero. why do you have to break that
> if statement?

The previous logic is slightly incorrect in that even if neigh_forced_gc
succeeded in removing some entries, the total number of entries may still
be above the threshold 3.

Thanks,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

<Prev in Thread] Current Thread [Next in Thread>