Hello, On Tue, Aug 28, 2012 at 01:58:25AM +0800, Lai Jiangshan wrote: > The compiler may compile this code into TWO write/modify instructions. > worker->flags &= ~WORKER_UNBOUND; > worker->flags |= WORKER_REBIND; > > so the other CPU may see the temporary of worker->flags which has > not WORKER_UNBOUND nor WORKER_REBIND, it will wrongly do local wake up. > > so we use one write/modify instruction explicitly instead. > > This bug will not occur on idle workers, because they have another > WORKER_NOT_RUNNING flags.
Yeap, I think this got broken while moving around when DISASSOCIATED is cleared. Can you please put this at the head of the series? Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/