aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2026-06-11 11:41:29 +0000
committerMark Johnston <markj@FreeBSD.org>2026-06-29 19:16:29 +0000
commita2235baa622badb7d4e2078cb3447fe77204e948 (patch)
tree59456a9b22991335da837e79b3ff61dbb9463393
parent96841ea08dcfa84b954a32dc5ae1a26c28966cf4 (diff)
sys/arm64: fix return values of freebsd32_{set,swap}context()
This patch aligns the return values of freebsd32_{set,swap}context() with their counterparts on amd64 and powerpc64, fixing the setcontext() and swapcontext() calls in armv7 applications running on aarch64. In particular, this fixes random crashes in armv7 Ruby applications running on aarch64 hosts. Approved by: so Security: FreeBSD-EN-26:16.arm64 Tested by: fuz MFC after: 1 week (cherry picked from commit 92ae21e8a155734f73589b7ef9fa19a6bb6d042f) (cherry picked from commit 964215aa1347c9da457ecaced0521c29eaaf7b21)
-rw-r--r--sys/arm64/arm64/freebsd32_machdep.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arm64/arm64/freebsd32_machdep.c b/sys/arm64/arm64/freebsd32_machdep.c
index d0218dc1dc80..3c7040bf5bb4 100644
--- a/sys/arm64/arm64/freebsd32_machdep.c
+++ b/sys/arm64/arm64/freebsd32_machdep.c
@@ -293,7 +293,7 @@ freebsd32_setcontext(struct thread *td, struct freebsd32_setcontext_args *uap)
NULL, 0);
}
}
- return (ret);
+ return (ret == 0 ? EJUSTRETURN : ret);
}
int
@@ -341,7 +341,7 @@ freebsd32_swapcontext(struct thread *td, struct freebsd32_swapcontext_args *uap)
}
}
}
- return (ret);
+ return (ret == 0 ? EJUSTRETURN : ret);
}
void