Thread (18 messages) 18 messages, 4 authors, 2021-07-30

Re: [PATCH v5 4/6] mm: simplify compat numa syscalls

From: Heiko Carstens <hca@linux.ibm.com>
Date: 2021-07-27 18:40:03
Also in: linux-api, linux-arch, linux-mips, linux-mm, linux-s390, linuxppc-dev, lkml, sparclinux

On Tue, Jul 27, 2021 at 07:40:05PM +0200, Arnd Bergmann wrote:
On Tue, Jul 27, 2021 at 7:27 PM Heiko Carstens [off-list ref] wrote:
quoted
quoted
+static int get_bitmap(unsigned long *mask, const unsigned long __user *nmask,
+                   unsigned long maxnode)
+{
+     unsigned long nlongs = BITS_TO_LONGS(maxnode);
+     int ret;
+
+     if (in_compat_syscall())
+             ret = compat_get_bitmap(mask,
+                                     (const compat_ulong_t __user *)nmask,
+                                     maxnode);
compat_ptr() conversion for e.g. nmask is missing with the next patch
which removes the compat system calls.
Is that intended or am I missing something?
I don't think it's needed here, since the pointer comes from the system
call argument, which has the compat_ptr() conversion applied in
arch/s390/include/asm/syscall_wrapper.h, not from a compat_uptr_t
that gets passed indirectly. The compat_get_bitmap() conversion
is only needed for byte order adjustment, not for converting pointers.

It's also possible that I'm the one who's missing something.
What I was trying to say: this patch on its own is ok. However with
the next patch you remove the compat system calls and map the regular
system calls instead.

That is:

-COMPAT_SYSCALL_DEFINE6(mbind, compat_ulong_t, start, compat_ulong_t, len,
-		       compat_ulong_t, mode, compat_ulong_t __user *, nmask,
-		       compat_ulong_t, maxnode, compat_ulong_t, flags)
-{
-	return kernel_mbind(start, len, mode, (unsigned long __user *)nmask,
-			    maxnode, flags);
-}

and this:

-268  common	mbind			sys_mbind			compat_sys_mbind
-269  common	get_mempolicy		sys_get_mempolicy		compat_sys_get_mempolicy
-270  common	set_mempolicy		sys_set_mempolicy		compat_sys_set_mempolicy
+268  common	mbind			sys_mbind			sys_mbind
+269  common	get_mempolicy		sys_get_mempolicy		sys_get_mempolicy
+270  common	set_mempolicy		sys_set_mempolicy		sys_set_mempolicy

would remove compat_ptr() conversion from nmask above if I'm not mistaken.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help