[...] >> >> So its at least possible I think these could be interleaved on multiple >> cpus. > > Sure, this was very clear when I wrote this code. Otherwise I would have > used an intermediate object and one rcu_dereference() instead of the > READ_ONCE(). > > >> >> Notice that some of the actions are fine though and don't have this >> issue act_bpf for example is fine. >> >> I think we can either fix it in the hash table create part of the >> list as this series does or just let each action handle it on its own. > > If we want a fix for stable kernels we want a tc_mirred fix on its own, > and I was planning to do so. > > Given that a "tc qdisc replace ..." drops all packets sitting in the old > qdisc, I never thought someone would actually depend on atomically > switching tc_mirred parameters. I for sure did not care. > > Thanks. > >
Agreed not sure why you would ever want to do a late binding and replace on a tc_mirred actions. But it is supported...