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