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 *
{
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)))
return(-EFAULT);
......
......@@ -77,7 +77,7 @@ void
ia64_patch_imm60 (u64 insn_addr, u64 val)
{
ia64_patch(insn_addr,
0x011ffffe000, ( ((val & 0x1000000000000000) >> 24) /* bit 60 -> 36 */
0x011ffffe000, ( ((val & 0x0800000000000000) >> 23) /* bit 59 -> 36 */
| ((val & 0x00000000000fffff) << 13) /* bit 0 -> 13 */));
ia64_patch(insn_addr - 1, 0x1fffffffffc, val >> 18);
}
......
......@@ -115,6 +115,9 @@ restore_sigcontext (struct sigcontext *sc, struct sigscratch *scr)
unsigned long ip, flags, nat, um, cfm;
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: */
err = __get_user(flags, &sc->sc_flags);
err |= __get_user(nat, &sc->sc_nat);
......@@ -559,9 +562,6 @@ ia64_do_signal (sigset_t *oldset, struct sigscratch *scr, long in_syscall)
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) {
switch (errno) {
case ERESTART_RESTARTBLOCK:
......
......@@ -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
* we're supposed to implement but haven't done so yet. Everything
* else goes to sys_ni_syscall.
*
* XXX Remove this for v2.6.1.
*/
asmlinkage long
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 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;
}
......
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