summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Steinhauser <asteinhauser@google.com>2019-12-17 01:53:47 +0300
committerWill Deacon <will@kernel.org>2020-01-08 20:27:41 +0300
commitb3c75c9d762b67de278c8847529b1e3a4c143a8e (patch)
tree975c442aff849d5ba08c6a6e372d6650439622a1
parent46cf053efec6a3a5f343fead837777efe8252a46 (diff)
downloadlinux-b3c75c9d762b67de278c8847529b1e3a4c143a8e.tar.xz
Return ENODEV when the selected speculation misfeature is unsupported
When the control of the selected speculation misbehavior is unsupported, the kernel should return ENODEV according to the documentation: https://www.kernel.org/doc/html/v4.17/userspace-api/spec_ctrl.html Current aarch64 implementation of SSB control sometimes returns EINVAL which is reserved for unimplemented prctl and for violations of reserved arguments. This change makes the aarch64 implementation consistent with the x86 implementation and with the documentation. Signed-off-by: Anthony Steinhauser <asteinhauser@google.com> Signed-off-by: Will Deacon <will@kernel.org>
-rw-r--r--arch/arm64/kernel/ssbd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm64/kernel/ssbd.c b/arch/arm64/kernel/ssbd.c
index 52cfc6148355..b26955f56750 100644
--- a/arch/arm64/kernel/ssbd.c
+++ b/arch/arm64/kernel/ssbd.c
@@ -37,7 +37,7 @@ static int ssbd_prctl_set(struct task_struct *task, unsigned long ctrl)
/* Unsupported */
if (state == ARM64_SSBD_UNKNOWN)
- return -EINVAL;
+ return -ENODEV;
/* Treat the unaffected/mitigated state separately */
if (state == ARM64_SSBD_MITIGATED) {
@@ -102,7 +102,7 @@ static int ssbd_prctl_get(struct task_struct *task)
{
switch (arm64_get_ssbd_state()) {
case ARM64_SSBD_UNKNOWN:
- return -EINVAL;
+ return -ENODEV;
case ARM64_SSBD_FORCE_ENABLE:
return PR_SPEC_DISABLE;
case ARM64_SSBD_KERNEL: