Am 2. März 2018 12:37:25 MEZ schrieb Kirill Tkhai <ktkhai@xxxxxxxxxxxxx>: >destroy_radio() may be executed in parallel with everything above you >wrote, >doesn't it? There may be several network namespaces, and >destroy_radio() >queued from one net namespace may race with mac80211_hwsim_new_radio() >or hwsim_del_radio_nl() for another net namespace. I don't see, how >netlink >locking can act on synchronization with a work. This is what I mention. > I see, you are right. Nonetheless, this value is pretty uncritical, since the user (the netlink dump) only checks whether it changes within a dump and even if there would be race conditions, e.g. some generations would be skipped caused by parallel writing, it would also set the dump interrupted flag, and the user space program knows, if it needs exact results, it needs to dump again. I'm unsure about things like caching of this variable. Maybe it needs a volatile flag to work always as expected. Unfortunately, currently the code triggers a dump interrupted also when the interfaces of the current namespace didn't change, but I think that is acceptable. Otherwise we need a per namespace generation and I think all this happens really rare and it's not worth the effort. >Thanks, >Kirill -- M.Sc. Benjamin Beichler Universität Rostock, Fakultät für Informatik und Elektrotechnik Institut für Angewandte Mikroelektronik und Datentechnik University of Rostock, Department of CS and EE Institute of Applied Microelectronics and CE Richard-Wagner-Straße 31 18119 Rostock Deutschland/Germany phone: +49 (0) 381 498 - 7278 email: Benjamin.Beichler@xxxxxxxxxxxxxx www: http://www.imd.uni-rostock.de/