X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Falpha%2Fkernel%2Fprocess.c;h=6fd8546554e9b1f9ae9802a8ca12851b9e6f98c2;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=f5c5969b7cae2dee00ad81ac9dc2606a1e71da39;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c index f5c5969b7..6fd854655 100644 --- a/arch/alpha/kernel/process.c +++ b/arch/alpha/kernel/process.c @@ -119,8 +119,8 @@ common_shutdown_1(void *generic_ptr) #ifdef CONFIG_SMP /* Wait for the secondaries to halt. */ - clear_bit(boot_cpuid, &cpu_present_mask); - while (cpu_present_mask) + cpu_clear(boot_cpuid, cpu_possible_map); + while (cpus_weight(cpu_possible_map)) barrier(); #endif @@ -189,7 +189,7 @@ EXPORT_SYMBOL(machine_power_off); void show_regs(struct pt_regs *regs) { - dik_show_regs(regs, 0); + dik_show_regs(regs, NULL); } /* @@ -456,19 +456,10 @@ dump_elf_task_fp(elf_fpreg_t *dest, struct task_struct *task) /* * sys_execve() executes a new program. - * - * This works due to the alpha calling sequence: the first 6 args - * are gotten from registers, while the rest is on the stack, so - * we get a0-a5 for free, and then magically find "struct pt_regs" - * on the stack for us.. - * - * Don't do this at home. */ asmlinkage int -sys_execve(char __user *ufilename, char __user * __user *argv, - char __user * __user *envp, - unsigned long a3, unsigned long a4, unsigned long a5, - struct pt_regs regs) +do_sys_execve(char __user *ufilename, char __user * __user *argv, + char __user * __user *envp, struct pt_regs *regs) { int error; char *filename; @@ -477,7 +468,7 @@ sys_execve(char __user *ufilename, char __user * __user *argv, error = PTR_ERR(filename); if (IS_ERR(filename)) goto out; - error = do_execve(filename, argv, envp, ®s); + error = do_execve(filename, argv, envp, regs); putname(filename); out: return error;