From: Matthew Wilcox Date: Wed, 4 Oct 2006 19:33:53 +0000 (-0600) Subject: [PA-RISC] Fix parisc_newuname() X-Git-Tag: v2.6.19-rc1~2^2~2 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=f64ef295032d07345ca26bf4876a1577c4dccb37;p=linux-2.6-omap-h63xx.git [PA-RISC] Fix parisc_newuname() The utsname virtualisation broke parisc_newuname compilation. Rewrite the implementation to call sys_newuname() like sparc64 does. Signed-off-by: Matthew Wilcox --- diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c index 1db5588ceac..512642d8f70 100644 --- a/arch/parisc/kernel/sys_parisc.c +++ b/arch/parisc/kernel/sys_parisc.c @@ -266,30 +266,17 @@ long parisc_personality(unsigned long personality) return err; } -static inline int override_machine(char __user *mach) { -#ifdef CONFIG_COMPAT - if (personality(current->personality) == PER_LINUX32) { - if (__put_user(0, mach + 6) || - __put_user(0, mach + 7)) - return -EFAULT; - } - - return 0; -#else /*!CONFIG_COMPAT*/ - return 0; -#endif /*CONFIG_COMPAT*/ -} - -long parisc_newuname(struct new_utsname __user *utsname) +long parisc_newuname(struct new_utsname __user *name) { - int err = 0; + int err = sys_newuname(name); - down_read(&uts_sem); - if (copy_to_user(utsname, &system_utsname, sizeof(*utsname))) - err = -EFAULT; - up_read(&uts_sem); - - err = override_machine(utsname->machine); +#ifdef CONFIG_COMPAT + if (!err && personality(current->personality) == PER_LINUX32) { + if (__put_user(0, name->machine + 6) || + __put_user(0, name->machine + 7)) + err = -EFAULT; + } +#endif - return (long)err; + return err; }