dev_change_net_namespace() and synchronize_net()
Subsystems (2)
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 callsynchronize_rcu() (equivalent to synchronize_net()).
Second time, synchronize_net() is called just before exiting. Is it really necessary?
Thank you for your answers,
Nicolas