projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] kmemdup: some users
[powerpc.git]
/
arch
/
i386
/
kernel
/
signal.c
diff --git
a/arch/i386/kernel/signal.c
b/arch/i386/kernel/signal.c
index
963616d
..
43002cf
100644
(file)
--- a/
arch/i386/kernel/signal.c
+++ b/
arch/i386/kernel/signal.c
@@
-123,7
+123,8
@@
restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *peax
err |= __get_user(tmp, &sc->seg); \
loadsegment(seg,tmp); }
err |= __get_user(tmp, &sc->seg); \
loadsegment(seg,tmp); }
-#define FIX_EFLAGS (X86_EFLAGS_AC | X86_EFLAGS_OF | X86_EFLAGS_DF | \
+#define FIX_EFLAGS (X86_EFLAGS_AC | X86_EFLAGS_RF | \
+ X86_EFLAGS_OF | X86_EFLAGS_DF | \
X86_EFLAGS_TF | X86_EFLAGS_SF | X86_EFLAGS_ZF | \
X86_EFLAGS_AF | X86_EFLAGS_PF | X86_EFLAGS_CF)
X86_EFLAGS_TF | X86_EFLAGS_SF | X86_EFLAGS_ZF | \
X86_EFLAGS_AF | X86_EFLAGS_PF | X86_EFLAGS_CF)
@@
-350,7
+351,7
@@
static int setup_frame(int sig, struct k_sigaction *ka,
goto give_sigsegv;
}
goto give_sigsegv;
}
- restorer =
&__kernel_sigreturn
;
+ restorer =
(void *)VDSO_SYM(&__kernel_sigreturn)
;
if (ka->sa.sa_flags & SA_RESTORER)
restorer = ka->sa.sa_restorer;
if (ka->sa.sa_flags & SA_RESTORER)
restorer = ka->sa.sa_restorer;
@@
-446,7
+447,7
@@
static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
goto give_sigsegv;
/* Set up to return from userspace. */
goto give_sigsegv;
/* Set up to return from userspace. */
- restorer =
&__kernel_rt_sigreturn
;
+ restorer =
(void *)VDSO_SYM(&__kernel_rt_sigreturn)
;
if (ka->sa.sa_flags & SA_RESTORER)
restorer = ka->sa.sa_restorer;
err |= __put_user(restorer, &frame->pretcode);
if (ka->sa.sa_flags & SA_RESTORER)
restorer = ka->sa.sa_restorer;
err |= __put_user(restorer, &frame->pretcode);
@@
-582,9
+583,6
@@
static void fastcall do_signal(struct pt_regs *regs)
if (!user_mode(regs))
return;
if (!user_mode(regs))
return;
- if (try_to_freeze())
- goto no_signal;
-
if (test_thread_flag(TIF_RESTORE_SIGMASK))
oldset = ¤t->saved_sigmask;
else
if (test_thread_flag(TIF_RESTORE_SIGMASK))
oldset = ¤t->saved_sigmask;
else
@@
-613,7
+611,6
@@
static void fastcall do_signal(struct pt_regs *regs)
return;
}
return;
}
-no_signal:
/* Did we come from a system call? */
if (regs->orig_eax >= 0) {
/* Restart the system call - no handlers present */
/* Did we come from a system call? */
if (regs->orig_eax >= 0) {
/* Restart the system call - no handlers present */