Re: [PATCH] x86/boot/64/clang: Use fixup_pointer() to access '__supported_pte_mask'

From: Dave Hansen
Date: Tue May 08 2018 - 12:25:09 EST


On 05/08/2018 07:50 AM, Alexander Potapenko wrote:
>>> Similarly to commit 187e91fe5e91
>>> ("x86/boot/64/clang: Use fixup_pointer() to access 'next_early_pgt'"),
>>> '__supported_pte_mask' must be also accessed using fixup_pointer() to
>>> avoid position-dependent relocations.
>>>
>>> Signed-off-by: Alexander Potapenko <glider@xxxxxxxxxx>
>>> Fixes: fb43d6cb91ef ("x86/mm: Do not auto-massage page protections")
>
>> In the interests of standalone changelogs, I'd really appreciate an
>> actual explanation of what's going on here. Your patch makes the code
>> uglier and doesn't fix anything functional from what I can see.
> You're right, sure. I'll send a patch with an updated description.

Great, thanks!

>> Do we have anything we can do to keep us from recreating these kinds of
>> regressions all the time?
> I'm not really aware of the possible options in the kernel land. Looks like
> a task for some objtool-like utility?
> As long as these regressions are caught with Clang, setting up a 0day Clang
> builder might help.

I've asked the 0day folks if this is doable. It would be great to see
it added.