diff options
Diffstat (limited to 'kernel/smp.c')
-rw-r--r-- | kernel/smp.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/smp.c b/kernel/smp.c index 5221ac677e60..1acf2bd32dbe 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -2,6 +2,7 @@ * Generic helpers for smp ipi calls * * (C) Jens Axboe <jens.axboe@oracle.com> 2008 + * Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved. */ #include <linux/rcupdate.h> #include <linux/rculist.h> @@ -12,6 +13,7 @@ #include <linux/gfp.h> #include <linux/smp.h> #include <linux/cpu.h> +#include <asm/relaxed.h> #include "smpboot.h" @@ -101,8 +103,8 @@ void __init call_function_init(void) */ static void csd_lock_wait(struct call_single_data *csd) { - while (csd->flags & CSD_FLAG_LOCK) - cpu_relax(); + while (cpu_relaxed_read_short(&csd->flags) & CSD_FLAG_LOCK) + cpu_read_relax(); } static void csd_lock(struct call_single_data *csd) |