On Tue, 2005-22-11 at 04:45 +0100, Patrick McHardy wrote:
> jamal wrote:

> > 
> > yes, RTNL is one but most of the ones i just inspected are protected
> > under dev_base_lock; so this should be sufficient, no?
> 
> You mean other sysctls? I guess it depends on which ones you're
> talking about, but if they take a lock I assume its for a reason :)

ones i scanned was the forwarding one (NET_IPV4_CONF_FORWARDING). 
as well as devinet_ioctl() which ends up calling the specific path
we are talking about.

> The ones in devinet.c seem to be mostly using the regular proc_do...
> functions however.
>
> promote_secondaries uses ipv4_doint_and_flush which itself used
> proc_dointvec without taking any locks, so the value can change
> at any time.

My point is: it clearly a bigger issue in a lot of places in the net
code -  almost all ipv4 syctls suffer from this issue then.

> If it changes from 0 to 1 while the loop is running half the secondaries
> will get deleted and the next one promoted. It should either delete
> all or promote the first secondary.

Lets settle that it is needed first - and then i will make the change
and hopefully Brian can retest.
It will be tricky to change actually.

cheers,
jamal 


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

Reply via email to