aboutsummaryrefslogtreecommitdiff
path: root/arch/arm64
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2014-11-21 18:54:34 +0000
committerMark Brown <broonie@kernel.org>2014-11-21 18:54:34 +0000
commitefbf0c1bc8f2d3496219d52c20a6ad7149a04443 (patch)
tree3cd85ba0dda258aa1ab8f142de82c46ca6751f67 /arch/arm64
parenta0cee48898708dd3074492edf369fd4c5aecb6c3 (diff)
parent2dc2565902d3c24108c4b7101e91957fd068a242 (diff)
Merge tag 'v3.14.25' into linux-linaro-lsk-v3.14
This is the 3.14.25 stable release
Diffstat (limited to 'arch/arm64')
-rw-r--r--arch/arm64/kernel/insn.c5
-rw-r--r--arch/arm64/lib/clear_user.S2
2 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm64/kernel/insn.c b/arch/arm64/kernel/insn.c
index 92f36835486b..565e26f23f31 100644
--- a/arch/arm64/kernel/insn.c
+++ b/arch/arm64/kernel/insn.c
@@ -156,9 +156,10 @@ static int __kprobes aarch64_insn_patch_text_cb(void *arg)
* which ends with "dsb; isb" pair guaranteeing global
* visibility.
*/
- atomic_set(&pp->cpu_count, -1);
+ /* Notify other processors with an additional increment. */
+ atomic_inc(&pp->cpu_count);
} else {
- while (atomic_read(&pp->cpu_count) != -1)
+ while (atomic_read(&pp->cpu_count) <= num_online_cpus())
cpu_relax();
isb();
}
diff --git a/arch/arm64/lib/clear_user.S b/arch/arm64/lib/clear_user.S
index 6e0ed93d51fe..c17967fdf5f6 100644
--- a/arch/arm64/lib/clear_user.S
+++ b/arch/arm64/lib/clear_user.S
@@ -46,7 +46,7 @@ USER(9f, strh wzr, [x0], #2 )
sub x1, x1, #2
4: adds x1, x1, #1
b.mi 5f
- strb wzr, [x0]
+USER(9f, strb wzr, [x0] )
5: mov x0, #0
ret
ENDPROC(__clear_user)