Re: [PATCH] uprobes/x86: fix detection of 32-bit user mode

From: Thomas Gleixner
Date: Mon Aug 26 2019 - 09:48:45 EST


On Sat, 24 Aug 2019, Thomas Gleixner wrote:
> On Fri, 23 Aug 2019, Andy Lutomirski wrote:
> > > On Aug 23, 2019, at 5:03 PM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> > >
> > >> On Sat, 24 Aug 2019, Thomas Gleixner wrote:
> > >> On Fri, 23 Aug 2019, Andy Lutomirski wrote:
> > >>>> On Aug 23, 2019, at 4:44 PM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> > >>>>
> > >>>>>> On Sat, 24 Aug 2019, Thomas Gleixner wrote:
> > >>>>>> On Sun, 28 Jul 2019, Sebastian Mayr wrote:
> > >>>>>>
> > >>>>>> -static inline int sizeof_long(void)
> > >>>>>> +static inline int sizeof_long(struct pt_regs *regs)
> > >>>>>> {
> > >>>>>> - return in_ia32_syscall() ? 4 : 8;
> > >>>>>
> > >>>>> This wants a comment.
> > >>>>>
> > >>>>>> + return user_64bit_mode(regs) ? 8 : 4;
> > >>>>
> > >>>> The more simpler one liner is to check
> > >>>>
> > >>>> test_thread_flag(TIF_IA32)
> > >>>
> > >>> I still want to finish killing TIF_IA32 some day. Letâs please not add new users.
> > >>
> > >> Well, yes and no. This needs to be backported ....
> > >
> > > And TBH the magic in user_64bit_mode() is not pretty either.
> > >
> > Itâs only magic on Xen. I should probably stick a
> > cpu_feature_enabled(X86_FEATURE_XENPV) in there instead.
>
> For backporting sake I really prefer the TIF version. One usage site more
> is not the end of the world. We can add the user_64bit_mode() variant from
> Sebastian on top as a cleanup right away so mainline is clean.

Bah, scratch it. I take the proper one right away.