DragonFly BSD
DragonFly commits List (threaded) for 2010-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - Fix vkernel_trap

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 18 Jan 2010 12:07:28 -0800 (PST)

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(-)


DragonFly BSD source repository

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]