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)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 6 Dec 2021 17:02:10 +0000 (17:02 +0000)
commitf0616abd4e67143b45b04b565839148458857347
treed7a91f6f0b594dfe6aa6133300cd5fff29197688
parentd58071a8a76d779eedab38033ae4c821c30295a5
arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1

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>
arch/arm64/lib/clear_page.S