Commit 03f78a19 authored by Linus Torvalds's avatar Linus Torvalds

Merge http://lia64.bkbits.net/to-linus-2.5

into home.osdl.org:/home/torvalds/v2.5/linux
parents 482f6240 071e240c
...@@ -720,6 +720,9 @@ restore_sigcontext_ia32 (struct pt_regs *regs, struct sigcontext_ia32 *sc, int * ...@@ -720,6 +720,9 @@ restore_sigcontext_ia32 (struct pt_regs *regs, struct sigcontext_ia32 *sc, int *
{ {
unsigned int err = 0; unsigned int err = 0;
/* Always make any pending restarted system calls return -EINTR */
current_thread_info()->restart_block.fn = do_no_restart_syscall;
if (!access_ok(VERIFY_READ, sc, sizeof(*sc))) if (!access_ok(VERIFY_READ, sc, sizeof(*sc)))
return(-EFAULT); return(-EFAULT);
......
...@@ -77,7 +77,7 @@ void ...@@ -77,7 +77,7 @@ void
ia64_patch_imm60 (u64 insn_addr, u64 val) ia64_patch_imm60 (u64 insn_addr, u64 val)
{ {
ia64_patch(insn_addr, ia64_patch(insn_addr,
0x011ffffe000, ( ((val & 0x1000000000000000) >> 24) /* bit 60 -> 36 */ 0x011ffffe000, ( ((val & 0x0800000000000000) >> 23) /* bit 59 -> 36 */
| ((val & 0x00000000000fffff) << 13) /* bit 0 -> 13 */)); | ((val & 0x00000000000fffff) << 13) /* bit 0 -> 13 */));
ia64_patch(insn_addr - 1, 0x1fffffffffc, val >> 18); ia64_patch(insn_addr - 1, 0x1fffffffffc, val >> 18);
} }
......
...@@ -115,6 +115,9 @@ restore_sigcontext (struct sigcontext *sc, struct sigscratch *scr) ...@@ -115,6 +115,9 @@ restore_sigcontext (struct sigcontext *sc, struct sigscratch *scr)
unsigned long ip, flags, nat, um, cfm; unsigned long ip, flags, nat, um, cfm;
long err; long err;
/* Always make any pending restarted system calls return -EINTR */
current_thread_info()->restart_block.fn = do_no_restart_syscall;
/* restore scratch that always needs gets updated during signal delivery: */ /* restore scratch that always needs gets updated during signal delivery: */
err = __get_user(flags, &sc->sc_flags); err = __get_user(flags, &sc->sc_flags);
err |= __get_user(nat, &sc->sc_nat); err |= __get_user(nat, &sc->sc_nat);
...@@ -559,9 +562,6 @@ ia64_do_signal (sigset_t *oldset, struct sigscratch *scr, long in_syscall) ...@@ -559,9 +562,6 @@ ia64_do_signal (sigset_t *oldset, struct sigscratch *scr, long in_syscall)
ka = &current->sighand->action[signr - 1]; ka = &current->sighand->action[signr - 1];
/* Always make any pending restarted system calls return -EINTR */
current_thread_info()->restart_block.fn = do_no_restart_syscall;
if (restart) { if (restart) {
switch (errno) { switch (errno) {
case ERESTART_RESTARTBLOCK: case ERESTART_RESTARTBLOCK:
......
...@@ -219,16 +219,14 @@ ia64_bad_break (unsigned long break_num, struct pt_regs *regs) ...@@ -219,16 +219,14 @@ ia64_bad_break (unsigned long break_num, struct pt_regs *regs)
* Unimplemented system calls. This is called only for stuff that * Unimplemented system calls. This is called only for stuff that
* we're supposed to implement but haven't done so yet. Everything * we're supposed to implement but haven't done so yet. Everything
* else goes to sys_ni_syscall. * else goes to sys_ni_syscall.
*
* XXX Remove this for v2.6.1.
*/ */
asmlinkage long asmlinkage long
ia64_ni_syscall (unsigned long arg0, unsigned long arg1, unsigned long arg2, unsigned long arg3, ia64_ni_syscall (unsigned long arg0, unsigned long arg1, unsigned long arg2, unsigned long arg3,
unsigned long arg4, unsigned long arg5, unsigned long arg6, unsigned long arg7, unsigned long arg4, unsigned long arg5, unsigned long arg6, unsigned long arg7,
unsigned long stack) unsigned long stack)
{ {
struct pt_regs *regs = (struct pt_regs *) &stack;
printk(KERN_DEBUG "%s(%d): <sc%ld(%lx,%lx,%lx,%lx)>\n", current->comm, current->pid,
regs->r15, arg0, arg1, arg2, arg3);
return -ENOSYS; return -ENOSYS;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment