Re: [PATCH] m68k: make sys_atomic_cmpxchg_32 work on classic m68k

Thorsten Glaser
2012-07-28T13:43:48Z

Andreas Schwab dixit:

>User space access must always go through uaccess accessors, since on
>classic m68k user space and kernel space are completely separate.
>
>Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>

This fixes my testcases, both the reduced two and the real-life
one (running apt-get update no longer freezes the system, yay!).

Ben, can we please get that in the next src:linux upload to sid?

Tested-by: Thorsten Glaser <tg@debian.org>

>---
> arch/m68k/kernel/sys_m68k.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
>diff --git a/arch/m68k/kernel/sys_m68k.c b/arch/m68k/kernel/sys_m68k.c
>index 8623f8d..9a5932e 100644
>--- a/arch/m68k/kernel/sys_m68k.c
>+++ b/arch/m68k/kernel/sys_m68k.c
>@@ -479,9 +479,13 @@ sys_atomic_cmpxchg_32(unsigned long newval, int oldval, int d3, int d4, int d5,
> goto bad_access;
> }
>
>- mem_value = *mem;
>+ /*
>+ * No need to check for EFAULT; we know that the page is
>+ * present and writable.
>+ */
>+ __get_user(mem_value, mem);
> if (mem_value == oldval)
>- *mem = newval;
>+ __put_user(newval, mem);
>
> pte_unmap_unlock(pte, ptl);
> up_read(&mm->mmap_sem);
>--
>1.7.11.3
>
>
>--
>Andreas Schwab, schwab@linux-m68k.org
>GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
>"And now for something completely different."
>

//mirabilos
--
13:37⎜«Natureshadow» Deep inside, I hate mirabilos. I mean, he's a good
guy. But he's always right! In every fsckin' situation, he's right. Even
with his deeply perverted taste in software and borked ambition towards
broken OSes - in the end, he's damn right about it :(! […] works in mksh