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 09:53:54 +0000 (10:53 +0100)
commitf0cb43a2c674a0b44418489deaa7ca2ca330283f
tree95da128e78de9720d7b39d6c3bd9beac457ce5d9
parent88ed31aab481e0451184924672afcbf484c5c3eb
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