diff options
| author | Ingo Molnar <mingo@kernel.org> | 2014-06-12 07:46:25 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2014-06-12 07:46:37 -0400 |
| commit | 535560d841b2d54f31280e05e9c6ffd19da0c4e7 (patch) | |
| tree | 5320502c072284813f3d3d42412bd73e26130863 /kernel/sched | |
| parent | f602d0632755be4f7eddfdd6c0af13216790177b (diff) | |
| parent | 3cf2f34e1a3d4d5ff209d087925cf950e52f4805 (diff) | |
Merge commit '3cf2f34' into sched/core, to fix build error
Fix this dependency on the locking tree's smp_mb*() API changes:
kernel/sched/idle.c:247:3: error: implicit declaration of function ‘smp_mb__after_atomic’ [-Werror=implicit-function-declaration]
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/sched')
| -rw-r--r-- | kernel/sched/core.c | 16 | ||||
| -rw-r--r-- | kernel/sched/cpupri.c | 6 | ||||
| -rw-r--r-- | kernel/sched/wait.c | 2 |
3 files changed, 20 insertions, 4 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 60d4e05d64dd..54f5722aba79 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
| @@ -90,6 +90,22 @@ | |||
| 90 | #define CREATE_TRACE_POINTS | 90 | #define CREATE_TRACE_POINTS |
| 91 | #include <trace/events/sched.h> | 91 | #include <trace/events/sched.h> |
| 92 | 92 | ||
| 93 | #ifdef smp_mb__before_atomic | ||
| 94 | void __smp_mb__before_atomic(void) | ||
| 95 | { | ||
| 96 | smp_mb__before_atomic(); | ||
| 97 | } | ||
| 98 | EXPORT_SYMBOL(__smp_mb__before_atomic); | ||
| 99 | #endif | ||
| 100 | |||
| 101 | #ifdef smp_mb__after_atomic | ||
| 102 | void __smp_mb__after_atomic(void) | ||
| 103 | { | ||
| 104 | smp_mb__after_atomic(); | ||
| 105 | } | ||
| 106 | EXPORT_SYMBOL(__smp_mb__after_atomic); | ||
| 107 | #endif | ||
| 108 | |||
| 93 | void start_bandwidth_timer(struct hrtimer *period_timer, ktime_t period) | 109 | void start_bandwidth_timer(struct hrtimer *period_timer, ktime_t period) |
| 94 | { | 110 | { |
| 95 | unsigned long delta; | 111 | unsigned long delta; |
diff --git a/kernel/sched/cpupri.c b/kernel/sched/cpupri.c index 8834243abee2..981fcd7dc394 100644 --- a/kernel/sched/cpupri.c +++ b/kernel/sched/cpupri.c | |||
| @@ -165,7 +165,7 @@ void cpupri_set(struct cpupri *cp, int cpu, int newpri) | |||
| 165 | * do a write memory barrier, and then update the count, to | 165 | * do a write memory barrier, and then update the count, to |
| 166 | * make sure the vector is visible when count is set. | 166 | * make sure the vector is visible when count is set. |
| 167 | */ | 167 | */ |
| 168 | smp_mb__before_atomic_inc(); | 168 | smp_mb__before_atomic(); |
| 169 | atomic_inc(&(vec)->count); | 169 | atomic_inc(&(vec)->count); |
| 170 | do_mb = 1; | 170 | do_mb = 1; |
| 171 | } | 171 | } |
| @@ -185,14 +185,14 @@ void cpupri_set(struct cpupri *cp, int cpu, int newpri) | |||
| 185 | * the new priority vec. | 185 | * the new priority vec. |
| 186 | */ | 186 | */ |
| 187 | if (do_mb) | 187 | if (do_mb) |
| 188 | smp_mb__after_atomic_inc(); | 188 | smp_mb__after_atomic(); |
| 189 | 189 | ||
| 190 | /* | 190 | /* |
| 191 | * When removing from the vector, we decrement the counter first | 191 | * When removing from the vector, we decrement the counter first |
| 192 | * do a memory barrier and then clear the mask. | 192 | * do a memory barrier and then clear the mask. |
| 193 | */ | 193 | */ |
| 194 | atomic_dec(&(vec)->count); | 194 | atomic_dec(&(vec)->count); |
| 195 | smp_mb__after_atomic_inc(); | 195 | smp_mb__after_atomic(); |
| 196 | cpumask_clear_cpu(cpu, vec->mask); | 196 | cpumask_clear_cpu(cpu, vec->mask); |
| 197 | } | 197 | } |
| 198 | 198 | ||
diff --git a/kernel/sched/wait.c b/kernel/sched/wait.c index 7d50f794e248..0ffa20ae657b 100644 --- a/kernel/sched/wait.c +++ b/kernel/sched/wait.c | |||
| @@ -394,7 +394,7 @@ EXPORT_SYMBOL(__wake_up_bit); | |||
| 394 | * | 394 | * |
| 395 | * In order for this to function properly, as it uses waitqueue_active() | 395 | * In order for this to function properly, as it uses waitqueue_active() |
| 396 | * internally, some kind of memory barrier must be done prior to calling | 396 | * internally, some kind of memory barrier must be done prior to calling |
| 397 | * this. Typically, this will be smp_mb__after_clear_bit(), but in some | 397 | * this. Typically, this will be smp_mb__after_atomic(), but in some |
| 398 | * cases where bitflags are manipulated non-atomically under a lock, one | 398 | * cases where bitflags are manipulated non-atomically under a lock, one |
| 399 | * may need to use a less regular barrier, such fs/inode.c's smp_mb(), | 399 | * may need to use a less regular barrier, such fs/inode.c's smp_mb(), |
| 400 | * because spin_unlock() does not guarantee a memory barrier. | 400 | * because spin_unlock() does not guarantee a memory barrier. |
