diff options
author | Steve Capper <steve.capper@linaro.org> | 2015-03-22 17:51:51 +0300 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2015-03-24 21:02:55 +0300 |
commit | f3eab7184ddcd4867cf42e3274ba24a66e1e093d (patch) | |
tree | e501fee107f0d97b77cde072d14b0eeb80cd85af /arch/arm64/include/asm/cpu_ops.h | |
parent | e53f21bce4d35a93b23d8fa1a840860f6c74f59e (diff) | |
download | linux-f3eab7184ddcd4867cf42e3274ba24a66e1e093d.tar.xz |
arm64: percpu: Make this_cpu accessors pre-empt safe
this_cpu operations were implemented for arm64 in:
5284e1b arm64: xchg: Implement cmpxchg_double
f97fc81 arm64: percpu: Implement this_cpu operations
Unfortunately, it is possible for pre-emption to take place between
address generation and data access. This can lead to cases where data
is being manipulated by this_cpu for a different CPU than it was
called on. Which effectively breaks the spec.
This patch disables pre-emption for the this_cpu operations
guaranteeing that address generation and data manipulation take place
without a pre-emption in-between.
Fixes: 5284e1b4bc8a ("arm64: xchg: Implement cmpxchg_double")
Fixes: f97fc810798c ("arm64: percpu: Implement this_cpu operations")
Reported-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Steve Capper <steve.capper@linaro.org>
[catalin.marinas@arm.com: remove space after type cast]
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/include/asm/cpu_ops.h')
0 files changed, 0 insertions, 0 deletions