Skip to content
Commit f3eab718 authored by Steve Capper's avatar Steve Capper Committed by Catalin Marinas
Browse files

arm64: percpu: Make this_cpu accessors pre-empt safe



this_cpu operations were implemented for arm64 in:
 5284e1b4 arm64: xchg: Implement cmpxchg_double
 f97fc810 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: 5284e1b4 ("arm64: xchg: Implement cmpxchg_double")
Fixes: f97fc810 ("arm64: percpu: Implement this_cpu operations")
Reported-by: default avatarMark Rutland <mark.rutland@arm.com>
Acked-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarSteve Capper <steve.capper@linaro.org>
[catalin.marinas@arm.com: remove space after type cast]
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent e53f21bc
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment