git: kernel - Fix vkernel_trap

看板DFBSD_commit作者時間16年前 (2010/01/19 04:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
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
文章代碼(AID): #1BLCL8ZK (DFBSD_commit)