On Fri, 28 Sep 2018, Geert Uytterhoeven wrote: > > On Fri, Sep 28, 2018 at 8:21 AM Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: > > On Thu, 27 Sep 2018, Andy Lutomirski wrote: > > > I have a couple questions here: > > > > > > - Is this actually okay on all architectures? That is, are there > > > cases where we'll screw up if we fail a USER_DS access this early? > > > s390 stands out as the obvious special case (where USER_DS is not > > > than just a subset of KERNEL_DS), but s390 opts out. > > > > > > - Why doesn't x86 set HAVE_FUTEX_CMPXCHG? Or do we still support > > > some 32-bit configurations that don't have cmpxchg and don't know > > > about it at compile time? > > > > I'm not entirely sure. Have to dig into the details. I assume S390 just can > > set it though. > > Not sure. My "[PATCH] futex: Switch to USER_DS for futex test" > (https://www.spinics.net/lists/stable/msg28846.html), which is > basically the same > as this patch, broke s390, so it was never merged. > > See "[BUG -next] "futex: switch to USER_DS for futex test" breaks s390" > (https://www.spinics.net/lists/linux-next/msg27902.html) > > Heiko said: > | Martin and I discussed this today and we will change the s390 code so that > | it will also survive very early USER_DS accesses (without valid current->mm) > | since we also discovered a couple of other oddities in our code. > > I don't know if that has happened, and whether it would work on s390 now. Duh yes, forgot about that one. But as S390 always has cmpxchg it simply can set HAVE_FUTEX_CMPXCHG which avoids the check completely. Surely they want to fix the other oddities or have done so already :) Thanks, tglx