]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: spin-table: handle unmapped cpu-release-addrs
authorMark Rutland <mark.rutland@arm.com>
Wed, 30 Jul 2014 10:59:02 +0000 (11:59 +0100)
committerWill Deacon <will.deacon@arm.com>
Mon, 8 Sep 2014 13:39:18 +0000 (14:39 +0100)
commit4886e889ed6db36130c80d2e783da52f504b56bc
treeb59e444ccfe28741c1521ac1b8470aec7d764126
parent5f685dfa09f16b21812cbd65f874b9bc7a72ee13
arm64: spin-table: handle unmapped cpu-release-addrs

In certain cases the cpu-release-addr of a CPU may not fall in the
linear mapping (e.g. when the kernel is loaded above this address due to
the presence of other images in memory). This is problematic for the
spin-table code as it assumes that it can trivially convert a
cpu-release-addr to a valid VA in the linear map.

This patch modifies the spin-table code to use a temporary cached
mapping to write to a given cpu-release-addr, enabling us to support
addresses regardless of whether they are covered by the linear mapping.

Acked-by: Leif Lindholm <leif.lindholm@linaro.org>
Tested-by: Leif Lindholm <leif.lindholm@linaro.org>
Tested-by: Mark Salter <msalter@redhat.com>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
[ardb: added (__force void *) cast]
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/smp_spin_table.c