[PATCH] x86/shstk: shadow stack enabling write return code change

From: Bill Roberts

Date: Mon Jun 15 2026 - 16:00:22 EST


When enabling write to a shadow stack that is not enabled, it will
return EPERM. However, that error code doesn't fit the condition and it
should be EINVAL, as that state change cannot be fulfilled due to an
invalid argument not a permissions issue.

Investigating userspace call sites, they do not rely on this specific
error message, nor could userspace effectively utilize this specific
return error code to indicate a difference in "I cannot enable
write because of invalid permissions" versus "I cannot enable write
because the shadow stack is disabled".

Signed-off-by: Bill Roberts <bill.roberts@xxxxxxx>
---
arch/x86/kernel/shstk.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/shstk.c b/arch/x86/kernel/shstk.c
index 0ca64900192f..eb690ba90180 100644
--- a/arch/x86/kernel/shstk.c
+++ b/arch/x86/kernel/shstk.c
@@ -490,7 +490,7 @@ static int wrss_control(bool enable)
* when disabling.
*/
if (!features_enabled(ARCH_SHSTK_SHSTK))
- return -EPERM;
+ return -EINVAL;

/* Already enabled/disabled? */
if (features_enabled(ARCH_SHSTK_WRSS) == enable)
--
2.54.0