DragonFly commits List (threaded) for 2010-01
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
git: kernel - Fix vkernel_trap
commit bb47c0722753e42a01efa8ca923901cbad298cb4
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date: Mon Jan 18 12:05:17 2010 -0800
kernel - Fix vkernel_trap
* vkernel_trap restores the trapframe for the original vkernel call to
vmspace_ctl(), but only the syscall trap code was actually setting
up the frame for a syscall-return.
The other calls to vkernel_trap() (signal, page-fault, other traps)
were not properly adjusting the frame for a syscall-return and it
is only pure luck that it didn't bite us until now.
* Add a per-platform cpu_vkernel_trap() which does the syscall-return
fixup at the end.
Reported-by: Antonio Huete Jimenez <tuxillo@quantumachine.net>
Summary of changes:
sys/platform/pc32/i386/trap.c | 18 ++++++++++++++----
sys/platform/pc64/x86_64/trap.c | 29 +++++++++++++++--------------
sys/platform/vkernel/i386/trap.c | 20 +++++++++++++++-----
sys/sys/systm.h | 1 +
sys/sys/vkernel.h | 2 +-
sys/vm/vm_vmspace.c | 4 ++--
6 files changed, 48 insertions(+), 26 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/bb47c0722753e42a01efa8ca923901cbad298cb4
--
DragonFly BSD source repository
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]