Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f64ef295 authored by Matthew Wilcox's avatar Matthew Wilcox Committed by Matthew Wilcox
Browse files

[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: default avatarMatthew Wilcox <willy@parisc-linux.org>
parent ccd6c355
Loading
Loading
Loading
Loading
+10 −23
Original line number Diff line number Diff line
@@ -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)))
#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;
	up_read(&uts_sem);

	err = override_machine(utsname->machine);
	}
#endif

	return (long)err;
	return err;
}