Skip to contentSkip to conversation

dev_change_net_namespace() and synchronize_net()

DISCUSSION Nicolas Dichtel 1 participant 1 message Jan 27, 2009

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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