Am 04.12.2014 um 01:16 schrieb Paul E. McKenney: >> * merging, or refetching absolutely anything at any time. Its main intended >> > * use is to mediate communication between process-level code and irq/NMI >> > * handlers, all running on the same CPU. > This comment is obsolete in the same way as that of READ_ONCE() and > ASSIGN_ONCE(), but probably more to the point to just get rid of > ACCESS_ONCE(). ;-) > >> > Its now /* * Prevent the compiler from merging or refetching accesses. The compiler * is also forbidden from reordering successive instances of ACCESS_ONCE(), * but only when the compiler is aware of some particular ordering. One way * to make the compiler aware of ordering is to put the two invocations of * ACCESS_ONCE() in different C statements. * * ACCESS_ONCE will only work on scalar types. For union types, ACCESS_ONCE * on a union member will work as long as the size of the member matches the * size of the union and the size is smaller than word size. * * The major use cases of ACCESS_ONCE used to be (1) Mediating communication * between process-level code and irq/NMI handlers, all running on the same CPU, * and (2) Ensuring that the compiler does not fold, spindle, or otherwise * mutilate accesses that either do not require ordering or that interact * with an explicit memory barrier or atomic instruction that provides the * required ordering. * * If possible use READ_ONCE/ASSIGN_ONCE instead. */ -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html