On 22 May 2014 15:45, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > On Thu, 2014-05-22 at 15:28 +0200, Michal Kazior wrote: >> vif->csa_active is protected by mutexes only. This >> means it is unreliable to depend on it on codeflow >> in non-sleepable beacon and CSA code. There was no >> guarantee to have vif->csa_active update be >> visible before beacons are updated on SMP systems. >> >> Using csa counter offsets which are embedded in >> beacon struct (and thus are protected with single >> RCU assignment) is much safer. > > This seems reasonable, but many uses of csa_active remain, no? hwsim for > example seems to access it without locking as well. Since the problem could be split I went with fixing things step-by-step. I was trying to tackle csa_active issue as well but I'm yet to arrive at a satisfactory solution. It's probably best to kill it and introduce a drv_switch_beacon_done(). With my patchset csa_active isn't as critical for decision making in the code. Michał -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html