mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-24 06:24:27 +00:00
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: Mathieu 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: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
fd3c36f8b5
commit
58336114af
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user