#
3f8482c4 |
|
05-Oct-2021 |
Jérôme Duval <jerome.duval@gmail.com> |
kernel/x86_64: remove lfence after swapgs on syscall entry and exit in a syscall, swapgs is always executed and can't be speculatively executed or bypassed. it's also not needed on exception/interrupt exit, only on exception/interrupt entry. follow-up on commit 84f6e2d39f55a1eeac8387e9cb456018d522afbd by waddlesplash (https://github.com/freebsd/freebsd-src/commit/7aa47cace14948a7b8277a4b24a0ca9e0308990a) Change-Id: I56de9526a1acd0075c4a12147ae782f0366dec52 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4557 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
84f6e2d3 |
|
14-Aug-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/x86_64: Always lfence after swapgs. This works around "yet another" Intel CPU bug. AMD is unaffected. Linux chose to use an altcodepatch for Intel only; FreeBSD did a bunch of benchmarks and determined the effect this had (if any) was so far out in the decimal places that just adding it unconditionally was the easier and simplest solution. (FreeBSD commit: https://github.com/freebsd/freebsd/commit/f4038696064b86260) Fixes #15236.
|
#
49608023 |
|
02-May-2018 |
Jérôme Duval <jerome.duval@gmail.com> |
kernel/x86_64: add ia32 syscall entry and commpage syscall code. * only for Intel sysenter/sysexit. * the entry function processes stack arguments as follows: we look up the syscall in the table, find the number of arguments. reserve place on the stack for the arguments. copy arguments on the stack pop register arguments call the syscall function place the return value in ax and dx registers. * TODO: we need to store the arguments somewhere for the post-syscall tracing. * the thread exit stub is 32-bit, for the time being use hexadecimal instructions. Change-Id: Ie5c502eb596d4fa7613d238de80643566bc19ed8
|