diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-04 22:08:13 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-04 22:08:13 -0400 |
commit | 4b8447184ae85de4ce710e5f561fbaada21b8394 (patch) | |
tree | 71aed2c654a6d8d83beff480bc84d9e63b366858 /arch/parisc/kernel/sys_parisc.c | |
parent | a43cdf08a1b1ab3c013059b5fa4c1b7561e53cb7 (diff) | |
parent | 1604f31895dcdb42edf6511ce7ef0546ff92c8e5 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/willy/parisc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/willy/parisc-2.6:
[PA-RISC] Fix time.c for new do_timer() calling convention
[PA-RISC] Fix must_check warnings in drivers.c
[PA-RISC] Fix parisc_newuname()
[PA-RISC] Remove warning from pci.c
[PA-RISC] Fix filldir warnings
[PA-RISC] Fix sys32_sysctl
[PA-RISC] Fix sba_iommu compilation
Diffstat (limited to 'arch/parisc/kernel/sys_parisc.c')
-rw-r--r-- | arch/parisc/kernel/sys_parisc.c | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c index 1db5588ceacf..512642d8f707 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) | |||
266 | return err; | 266 | return err; |
267 | } | 267 | } |
268 | 268 | ||
269 | static inline int override_machine(char __user *mach) { | 269 | long parisc_newuname(struct new_utsname __user *name) |
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) | ||
284 | { | 270 | { |
285 | int err = 0; | 271 | int err = sys_newuname(name); |
286 | 272 | ||
287 | down_read(&uts_sem); | 273 | #ifdef CONFIG_COMPAT |
288 | if (copy_to_user(utsname, &system_utsname, sizeof(*utsname))) | 274 | if (!err && personality(current->personality) == PER_LINUX32) { |
289 | err = -EFAULT; | 275 | if (__put_user(0, name->machine + 6) || |
290 | up_read(&uts_sem); | 276 | __put_user(0, name->machine + 7)) |
291 | 277 | err = -EFAULT; | |
292 | err = override_machine(utsname->machine); | 278 | } |
279 | #endif | ||
293 | 280 | ||
294 | return (long)err; | 281 | return err; |
295 | } | 282 | } |