Commit dc3befe0 authored by Linus Torvalds's avatar Linus Torvalds

Merge http://linux-ntfs.bkbits.net/ntfs-2.6

into home.osdl.org:/home/torvalds/v2.5/linux
parents cc643cf2 1074ddff
...@@ -361,7 +361,7 @@ static int __init smp_read_mpc(struct mp_config_table *mpc) ...@@ -361,7 +361,7 @@ static int __init smp_read_mpc(struct mp_config_table *mpc)
unsigned char *mpt=((unsigned char *)mpc)+count; unsigned char *mpt=((unsigned char *)mpc)+count;
if (memcmp(mpc->mpc_signature,MPC_SIGNATURE,4)) { if (memcmp(mpc->mpc_signature,MPC_SIGNATURE,4)) {
panic("SMP mptable: bad signature [%c%c%c%c]!\n", printk("SMP mptable: bad signature [%c%c%c%c]!\n",
mpc->mpc_signature[0], mpc->mpc_signature[0],
mpc->mpc_signature[1], mpc->mpc_signature[1],
mpc->mpc_signature[2], mpc->mpc_signature[2],
...@@ -369,7 +369,7 @@ static int __init smp_read_mpc(struct mp_config_table *mpc) ...@@ -369,7 +369,7 @@ static int __init smp_read_mpc(struct mp_config_table *mpc)
return 0; return 0;
} }
if (mpf_checksum((unsigned char *)mpc,mpc->mpc_length)) { if (mpf_checksum((unsigned char *)mpc,mpc->mpc_length)) {
panic("SMP mptable: checksum error!\n"); printk("SMP mptable: checksum error!\n");
return 0; return 0;
} }
if (mpc->mpc_spec!=0x01 && mpc->mpc_spec!=0x04) { if (mpc->mpc_spec!=0x01 && mpc->mpc_spec!=0x04) {
......
...@@ -90,7 +90,6 @@ END(sys32_sigsuspend) ...@@ -90,7 +90,6 @@ END(sys32_sigsuspend)
GLOBAL_ENTRY(ia32_ret_from_clone) GLOBAL_ENTRY(ia32_ret_from_clone)
PT_REGS_UNWIND_INFO(0) PT_REGS_UNWIND_INFO(0)
#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT)
{ /* { /*
* Some versions of gas generate bad unwind info if the first instruction of a * Some versions of gas generate bad unwind info if the first instruction of a
* procedure doesn't go into the first slot of a bundle. This is a workaround. * procedure doesn't go into the first slot of a bundle. This is a workaround.
...@@ -105,7 +104,6 @@ GLOBAL_ENTRY(ia32_ret_from_clone) ...@@ -105,7 +104,6 @@ GLOBAL_ENTRY(ia32_ret_from_clone)
br.call.sptk.many rp=ia64_invoke_schedule_tail br.call.sptk.many rp=ia64_invoke_schedule_tail
} }
.ret1: .ret1:
#endif
adds r2=TI_FLAGS+IA64_TASK_SIZE,r13 adds r2=TI_FLAGS+IA64_TASK_SIZE,r13
;; ;;
ld4 r2=[r2] ld4 r2=[r2]
......
...@@ -1035,8 +1035,6 @@ static inline void syscall_restart(unsigned long orig_i0, struct pt_regs *regs, ...@@ -1035,8 +1035,6 @@ static inline void syscall_restart(unsigned long orig_i0, struct pt_regs *regs,
{ {
switch(regs->u_regs[UREG_I0]) { switch(regs->u_regs[UREG_I0]) {
case ERESTART_RESTARTBLOCK: case ERESTART_RESTARTBLOCK:
current_thread_info()->restart_block.fn = do_no_restart_syscall;
/* fallthrough */
case ERESTARTNOHAND: case ERESTARTNOHAND:
no_system_call_restart: no_system_call_restart:
regs->u_regs[UREG_I0] = EINTR; regs->u_regs[UREG_I0] = EINTR;
...@@ -1086,6 +1084,13 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs * regs, ...@@ -1086,6 +1084,13 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs * regs,
struct k_sigaction *ka; struct k_sigaction *ka;
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 (cookie.restart_syscall) if (cookie.restart_syscall)
syscall_restart(cookie.orig_i0, regs, &ka->sa); syscall_restart(cookie.orig_i0, regs, &ka->sa);
handle_signal(signr, ka, &info, oldset, regs, svr4_signal); handle_signal(signr, ka, &info, oldset, regs, svr4_signal);
......
...@@ -579,8 +579,6 @@ static inline void syscall_restart(unsigned long orig_i0, struct pt_regs *regs, ...@@ -579,8 +579,6 @@ static inline void syscall_restart(unsigned long orig_i0, struct pt_regs *regs,
{ {
switch (regs->u_regs[UREG_I0]) { switch (regs->u_regs[UREG_I0]) {
case ERESTART_RESTARTBLOCK: case ERESTART_RESTARTBLOCK:
current_thread_info()->restart_block.fn = do_no_restart_syscall;
/* fallthrough */
case ERESTARTNOHAND: case ERESTARTNOHAND:
no_system_call_restart: no_system_call_restart:
regs->u_regs[UREG_I0] = EINTR; regs->u_regs[UREG_I0] = EINTR;
...@@ -628,6 +626,13 @@ static int do_signal(sigset_t *oldset, struct pt_regs * regs, ...@@ -628,6 +626,13 @@ static int do_signal(sigset_t *oldset, struct pt_regs * regs,
struct k_sigaction *ka; struct k_sigaction *ka;
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 (cookie.restart_syscall) if (cookie.restart_syscall)
syscall_restart(orig_i0, regs, &ka->sa); syscall_restart(orig_i0, regs, &ka->sa);
handle_signal(signr, ka, &info, oldset, regs); handle_signal(signr, ka, &info, oldset, regs);
......
...@@ -1221,8 +1221,6 @@ static inline void syscall_restart32(unsigned long orig_i0, struct pt_regs *regs ...@@ -1221,8 +1221,6 @@ static inline void syscall_restart32(unsigned long orig_i0, struct pt_regs *regs
{ {
switch (regs->u_regs[UREG_I0]) { switch (regs->u_regs[UREG_I0]) {
case ERESTART_RESTARTBLOCK: case ERESTART_RESTARTBLOCK:
current_thread_info()->restart_block.fn = do_no_restart_syscall;
/* fallthrough */
case ERESTARTNOHAND: case ERESTARTNOHAND:
no_system_call_restart: no_system_call_restart:
regs->u_regs[UREG_I0] = EINTR; regs->u_regs[UREG_I0] = EINTR;
...@@ -1259,6 +1257,13 @@ int do_signal32(sigset_t *oldset, struct pt_regs * regs, ...@@ -1259,6 +1257,13 @@ int do_signal32(sigset_t *oldset, struct pt_regs * regs,
struct k_sigaction *ka; struct k_sigaction *ka;
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 (cookie.restart_syscall) if (cookie.restart_syscall)
syscall_restart32(orig_i0, regs, &ka->sa); syscall_restart32(orig_i0, regs, &ka->sa);
handle_signal32(signr, ka, &info, oldset, regs, svr4_signal); handle_signal32(signr, ka, &info, oldset, regs, svr4_signal);
......
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