fix(cpufeat): update FEAT_PAUTH's feat detect line to tri-state
Since patch 8d9f5f258, FEAT_PAUTH has supported the tri-state framework.
This part was missed, update it.
Change-Id: I3e086865df4d852e9d31a04cd8150d9d8a4dd2b8
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
diff --git a/common/feat_detect.c b/common/feat_detect.c
index 694d616..5f70397 100644
--- a/common/feat_detect.c
+++ b/common/feat_detect.c
@@ -63,16 +63,6 @@
return false;
}
-/************************************************
- * Feature : FEAT_PAUTH (Pointer Authentication)
- ***********************************************/
-static void read_feat_pauth(void)
-{
-#if (ENABLE_PAUTH == FEAT_STATE_ALWAYS) || (CTX_INCLUDE_PAUTH_REGS == FEAT_STATE_ALWAYS)
- feat_detect_panic(is_feat_pauth_present(), "PAUTH");
-#endif
-}
-
static unsigned int read_feat_rng_trap_id_field(void)
{
return ISOLATE_FIELD(read_id_aa64pfr1_el1(), ID_AA64PFR1_EL1_RNDR_TRAP_SHIFT,
@@ -365,8 +355,9 @@
"RAS", 1, 2);
/* v8.3 features */
- /* TODO: Pauth yet to convert to tri-state feat detect logic */
- read_feat_pauth();
+ /* the PAuth fields are very complicated, no min/max is checked */
+ tainted |= check_feature(ENABLE_PAUTH, is_feat_pauth_present(),
+ "PAUTH", 1, 1);
/* v8.4 features */
tainted |= check_feature(ENABLE_FEAT_DIT, read_feat_dit_id_field(),