On Mon, Jun 18, 2018 at 01:03:04PM +0100, Mark Rutland wrote: > diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h > index 73810808cdf2..14312d334345 100644 > --- a/include/linux/syscalls.h > +++ b/include/linux/syscalls.h > @@ -80,6 +80,7 @@ union bpf_attr; > #include <linux/unistd.h> > #include <linux/quota.h> > #include <linux/key.h> > +#include <linux/personality.h> > #include <trace/syscall.h> > > #ifdef CONFIG_ARCH_HAS_SYSCALL_WRAPPER > @@ -1277,4 +1278,14 @@ static inline long ksys_truncate(const char __user *pathname, loff_t length) > return do_sys_truncate(pathname, length); > } > > +static inline unsigned int ksys_personality(unsigned int personality) > +{ > + unsigned int old = current->personality; > + > + if (personality != 0xffffffff) > + set_personality(personality); > + > + return old; > +} > + > #endif It looks like this is identical to sys_personality() in kernel/exec_domain.c. Should you call ksys_personality() from there directly (a few lines saved)? -- Catalin