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

From: Thomas Gleixner
Date: Fri Aug 23 2019 - 20:20:51 EST


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.

Thanks,

tglx