Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58336114 authored by Mathieu Desnoyers's avatar Mathieu Desnoyers Committed by Linus Torvalds
Browse files

markers: remove ACCESS_ONCE



As Paul pointed out, the ACCESS_ONCE are not needed because we already have
the explicit surrounding memory barriers.

Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Mike Mason <mmlnx@us.ibm.com>
Cc: Dipankar Sarma <dipankar@in.ibm.com>
Cc: David Smith <dsmith@redhat.com>
Cc: "Paul E. McKenney" <paulmck@us.ibm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Adrian Bunk <adrian.bunk@movial.fi>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent fd3c36f8
Loading
Loading
Loading
Loading
+6 −6
Original line number Original line Diff line number Diff line
@@ -109,13 +109,13 @@ void marker_probe_cb(const struct marker *mdata, void *call_private,
	 * modules and they insure RCU read coherency.
	 * modules and they insure RCU read coherency.
	 */
	 */
	preempt_disable();
	preempt_disable();
	ptype = ACCESS_ONCE(mdata->ptype);
	ptype = mdata->ptype;
	if (likely(!ptype)) {
	if (likely(!ptype)) {
		marker_probe_func *func;
		marker_probe_func *func;
		/* Must read the ptype before ptr. They are not data dependant,
		/* Must read the ptype before ptr. They are not data dependant,
		 * so we put an explicit smp_rmb() here. */
		 * so we put an explicit smp_rmb() here. */
		smp_rmb();
		smp_rmb();
		func = ACCESS_ONCE(mdata->single.func);
		func = mdata->single.func;
		/* Must read the ptr before private data. They are not data
		/* Must read the ptr before private data. They are not data
		 * dependant, so we put an explicit smp_rmb() here. */
		 * dependant, so we put an explicit smp_rmb() here. */
		smp_rmb();
		smp_rmb();
@@ -133,7 +133,7 @@ void marker_probe_cb(const struct marker *mdata, void *call_private,
		 * in the fast path, so put the explicit barrier here.
		 * in the fast path, so put the explicit barrier here.
		 */
		 */
		smp_read_barrier_depends();
		smp_read_barrier_depends();
		multi = ACCESS_ONCE(mdata->multi);
		multi = mdata->multi;
		for (i = 0; multi[i].func; i++) {
		for (i = 0; multi[i].func; i++) {
			va_start(args, fmt);
			va_start(args, fmt);
			multi[i].func(multi[i].probe_private, call_private, fmt,
			multi[i].func(multi[i].probe_private, call_private, fmt,
@@ -161,13 +161,13 @@ void marker_probe_cb_noarg(const struct marker *mdata,
	char ptype;
	char ptype;


	preempt_disable();
	preempt_disable();
	ptype = ACCESS_ONCE(mdata->ptype);
	ptype = mdata->ptype;
	if (likely(!ptype)) {
	if (likely(!ptype)) {
		marker_probe_func *func;
		marker_probe_func *func;
		/* Must read the ptype before ptr. They are not data dependant,
		/* Must read the ptype before ptr. They are not data dependant,
		 * so we put an explicit smp_rmb() here. */
		 * so we put an explicit smp_rmb() here. */
		smp_rmb();
		smp_rmb();
		func = ACCESS_ONCE(mdata->single.func);
		func = mdata->single.func;
		/* Must read the ptr before private data. They are not data
		/* Must read the ptr before private data. They are not data
		 * dependant, so we put an explicit smp_rmb() here. */
		 * dependant, so we put an explicit smp_rmb() here. */
		smp_rmb();
		smp_rmb();
@@ -183,7 +183,7 @@ void marker_probe_cb_noarg(const struct marker *mdata,
		 * in the fast path, so put the explicit barrier here.
		 * in the fast path, so put the explicit barrier here.
		 */
		 */
		smp_read_barrier_depends();
		smp_read_barrier_depends();
		multi = ACCESS_ONCE(mdata->multi);
		multi = mdata->multi;
		for (i = 0; multi[i].func; i++)
		for (i = 0; multi[i].func; i++)
			multi[i].func(multi[i].probe_private, call_private, fmt,
			multi[i].func(multi[i].probe_private, call_private, fmt,
				&args);
				&args);