diff options
Diffstat (limited to 'arch/sparc/kernel/sys_sunos.c')
-rw-r--r-- | arch/sparc/kernel/sys_sunos.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/arch/sparc/kernel/sys_sunos.c b/arch/sparc/kernel/sys_sunos.c index aa0fb2efb615..9d2cd97d1c3a 100644 --- a/arch/sparc/kernel/sys_sunos.c +++ b/arch/sparc/kernel/sys_sunos.c | |||
@@ -483,13 +483,18 @@ asmlinkage int sunos_uname(struct sunos_utsname __user *name) | |||
483 | { | 483 | { |
484 | int ret; | 484 | int ret; |
485 | down_read(&uts_sem); | 485 | down_read(&uts_sem); |
486 | ret = copy_to_user(&name->sname[0], &system_utsname.sysname[0], sizeof(name->sname) - 1); | 486 | ret = copy_to_user(&name->sname[0], &utsname()->sysname[0], |
487 | sizeof(name->sname) - 1); | ||
487 | if (!ret) { | 488 | if (!ret) { |
488 | ret |= __copy_to_user(&name->nname[0], &system_utsname.nodename[0], sizeof(name->nname) - 1); | 489 | ret |= __copy_to_user(&name->nname[0], &utsname()->nodename[0], |
490 | sizeof(name->nname) - 1); | ||
489 | ret |= __put_user('\0', &name->nname[8]); | 491 | ret |= __put_user('\0', &name->nname[8]); |
490 | ret |= __copy_to_user(&name->rel[0], &system_utsname.release[0], sizeof(name->rel) - 1); | 492 | ret |= __copy_to_user(&name->rel[0], &utsname()->release[0], |
491 | ret |= __copy_to_user(&name->ver[0], &system_utsname.version[0], sizeof(name->ver) - 1); | 493 | sizeof(name->rel) - 1); |
492 | ret |= __copy_to_user(&name->mach[0], &system_utsname.machine[0], sizeof(name->mach) - 1); | 494 | ret |= __copy_to_user(&name->ver[0], &utsname()->version[0], |
495 | sizeof(name->ver) - 1); | ||
496 | ret |= __copy_to_user(&name->mach[0], &utsname()->machine[0], | ||
497 | sizeof(name->mach) - 1); | ||
493 | } | 498 | } |
494 | up_read(&uts_sem); | 499 | up_read(&uts_sem); |
495 | return ret ? -EFAULT : 0; | 500 | return ret ? -EFAULT : 0; |