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

From: Andy Lutomirski
Date: Fri Aug 23 2019 - 20:13:29 EST




> 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.