diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2008-09-15 19:40:49 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2008-09-15 19:40:49 +0000 |
| commit | 2feda37ff0f66bb4b31e8d9a141b0c9aef645d81 (patch) | |
| tree | 18e6dde512a00398d4291fc1022edae58e7c4292 /sys/i386 | |
| parent | 880a184c29be0769e92fc0168c682cea37ea2b1c (diff) | |
Notes
Diffstat (limited to 'sys/i386')
| -rw-r--r-- | sys/i386/linux/linux_genassym.c | 1 | ||||
| -rw-r--r-- | sys/i386/linux/linux_locore.s | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/sys/i386/linux/linux_genassym.c b/sys/i386/linux/linux_genassym.c index 3a36432174b1..1e845724cfdc 100644 --- a/sys/i386/linux/linux_genassym.c +++ b/sys/i386/linux/linux_genassym.c @@ -13,3 +13,4 @@ ASSYM(LINUX_SC_GS, offsetof(struct l_sigcontext, sc_gs)); ASSYM(LINUX_SC_EFLAGS, offsetof(struct l_sigcontext, sc_eflags)); ASSYM(LINUX_RT_SIGF_HANDLER, offsetof(struct l_rt_sigframe, sf_handler)); ASSYM(LINUX_RT_SIGF_UC, offsetof(struct l_rt_sigframe, sf_sc)); +ASSYM(LINUX_RT_SIGF_SC, offsetof(struct l_ucontext, uc_mcontext)); diff --git a/sys/i386/linux/linux_locore.s b/sys/i386/linux/linux_locore.s index 1c23b3a370e8..044e8e2e9951 100644 --- a/sys/i386/linux/linux_locore.s +++ b/sys/i386/linux/linux_locore.s @@ -19,7 +19,8 @@ NON_GPROF_ENTRY(linux_sigcode) linux_rt_sigcode: call *LINUX_RT_SIGF_HANDLER(%esp) leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */ - movl LINUX_SC_GS(%ebx),%gs + leal LINUX_RT_SIGF_SC(%ebx),%ecx /* linux sigcontext */ + movl LINUX_SC_GS(%ecx),%gs push %eax /* fake ret addr */ movl $LINUX_SYS_linux_rt_sigreturn,%eax /* linux_rt_sigreturn() */ int $0x80 /* enter kernel with args */ |
