[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 <willy@parisc-linux.org>

authored by Matthew Wilcox and committed by Matthew Wilcox f64ef295 ccd6c355

+10 -23
+10 -23
arch/parisc/kernel/sys_parisc.c
··· 266 266 return err; 267 267 } 268 268 269 - static inline int override_machine(char __user *mach) { 270 - #ifdef CONFIG_COMPAT 271 - if (personality(current->personality) == PER_LINUX32) { 272 - if (__put_user(0, mach + 6) || 273 - __put_user(0, mach + 7)) 274 - return -EFAULT; 275 - } 276 - 277 - return 0; 278 - #else /*!CONFIG_COMPAT*/ 279 - return 0; 280 - #endif /*CONFIG_COMPAT*/ 281 - } 282 - 283 - long parisc_newuname(struct new_utsname __user *utsname) 269 + long parisc_newuname(struct new_utsname __user *name) 284 270 { 285 - int err = 0; 271 + int err = sys_newuname(name); 286 272 287 - down_read(&uts_sem); 288 - if (copy_to_user(utsname, &system_utsname, sizeof(*utsname))) 289 - err = -EFAULT; 290 - up_read(&uts_sem); 273 + #ifdef CONFIG_COMPAT 274 + if (!err && personality(current->personality) == PER_LINUX32) { 275 + if (__put_user(0, name->machine + 6) || 276 + __put_user(0, name->machine + 7)) 277 + err = -EFAULT; 278 + } 279 + #endif 291 280 292 - err = override_machine(utsname->machine); 293 - 294 - return (long)err; 281 + return err; 295 282 }