arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1
authorReiji Watanabe <reijiw@google.com>
Mon, 6 Dec 2021 00:47:35 +0000 (16:47 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 10:03:28 +0000 (11:03 +0100)
commit338c297e08851387d26eca98b6069fb5c812fad1
tree8271f771ed97246cca142e2b941c8e13df22fb73
parent33fcd00e0aa04b1efbf3b4b09153560a0dab3176
arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1

[ Upstream commit f0616abd4e67143b45b04b565839148458857347 ]

Currently, clear_page() uses DC ZVA instruction unconditionally.  But it
should make sure that DCZID_EL0.DZP, which indicates whether or not use
of DC ZVA instruction is prohibited, is zero when using the instruction.
Use STNP instead when DCZID_EL0.DZP == 1.

Fixes: f27bb139c387 ("arm64: Miscellaneous library functions")
Signed-off-by: Reiji Watanabe <reijiw@google.com>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/20211206004736.1520989-2-reijiw@google.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/arm64/lib/clear_page.S