aboutsummaryrefslogtreecommitdiff
path: root/services/arm_arch_svc
diff options
context:
space:
mode:
authorDimitris Papastamos <dimitris.papastamos@arm.com>2018-03-28 12:06:40 +0100
committerDimitris Papastamos <dimitris.papastamos@arm.com>2018-04-03 16:34:12 +0100
commit59dc4ef48757e4de2dc2de13d13e43acd5d91aa0 (patch)
treee356c31409aff591dfb75dc127995ab6430b49ea /services/arm_arch_svc
parentf11916bf1dfecd7ee76240eebd847681ce366a67 (diff)
downloadtrusted-firmware-a-59dc4ef48757e4de2dc2de13d13e43acd5d91aa0.tar.gz
Fixup SMCCC_FEATURES return value for SMCCC_ARCH_WORKAROUND_1
Only return -1 if the workaround for CVE-2017-5715 is not compiled in. Change-Id: I1bd07c57d22b4a13cf51b35be141a1f1ffb065ff Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
Diffstat (limited to 'services/arm_arch_svc')
-rw-r--r--services/arm_arch_svc/arm_arch_svc_setup.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/services/arm_arch_svc/arm_arch_svc_setup.c b/services/arm_arch_svc/arm_arch_svc_setup.c
index 83d3625f95..eb736c060e 100644
--- a/services/arm_arch_svc/arm_arch_svc_setup.c
+++ b/services/arm_arch_svc/arm_arch_svc_setup.c
@@ -19,19 +19,16 @@ static int32_t smccc_version(void)
static int32_t smccc_arch_features(u_register_t arg)
{
- int ret;
-
switch (arg) {
case SMCCC_VERSION:
case SMCCC_ARCH_FEATURES:
return SMC_OK;
+#if WORKAROUND_CVE_2017_5715
case SMCCC_ARCH_WORKAROUND_1:
- ret = check_workaround_cve_2017_5715();
- if (ret == ERRATA_APPLIES)
- return 0;
- else if (ret == ERRATA_NOT_APPLIES)
+ if (check_workaround_cve_2017_5715() == ERRATA_NOT_APPLIES)
return 1;
- return -1; /* ERRATA_MISSING */
+ return 0; /* ERRATA_APPLIES || ERRATA_MISSING */
+#endif
default:
return SMC_UNK;
}