Re: [PATCH] x86/alternatives: Disable KASAN on text_poke_early() in apply_alternatives()

Borislav Petkov
2023-10-10T08:21:02Z

On Tue, Oct 10, 2023 at 08:37:16AM +0300, Kirill A. Shutemov wrote:
> On machines with 5-level paging, cpu_feature_enabled(X86_FEATURE_LA57)
> got patched. It includes KASAN code, where KASAN_SHADOW_START depends on
> __VIRTUAL_MASK_SHIFT, which is defined with the cpu_feature_enabled().

So use boot_cpu_has(X86_FEATURE_LA57).

> It seems that KASAN gets confused when apply_alternatives() patches the

It seems?

> KASAN_SHADOW_START users. A test patch that makes KASAN_SHADOW_START
> static, by replacing __VIRTUAL_MASK_SHIFT with 56, fixes the issue.
>
> During text_poke_early() in apply_alternatives(), KASAN should be
> disabled. KASAN is already disabled in non-_early() text_poke().
>
> It is unclear why the issue was not reported earlier. Bisecting does not
> help. Older kernels trigger the issue less frequently, but it still
> occurs. In the absence of any other clear offenders, the initial dynamic
> 5-level paging support is to blame.

This whole thing sounds like it is still not really clear what is
actually happening...

--
Regards/Gruss,
Boris.