Am 2. März 2018 12:37:25 MEZ schrieb Kirill Tkhai <ktk...@virtuozzo.com>:
>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.beich...@uni-rostock.de
www: http://www.imd.uni-rostock.de/

Reply via email to