dev_change_net_namespace() and synchronize_net()
From: Nicolas Dichtel <hidden>
Date: 2009-01-27 10:33:34
From: Nicolas Dichtel <hidden>
Date: 2009-01-27 10:33:34
Hi folks, I'm asking me philosophical questions about synchronize_net(). In my understanding, it is used to ensure that processing of current packets are finished. In function dev_change_net_namespace(), synchronize_net() is called twice: One time, between dev_close() and dev_shutdown(). I don't understand why it's needed here: - if interface is down, no packet can be processed by it - if interface is up, dev_close() will call dev_deactivate() which will call synchronize_rcu() (equivalent to synchronize_net()). Second time, synchronize_net() is called just before exiting. Is it really necessary? Thank you for your answers, Nicolas