[PATCH v2] arm64: efi: Fix handling of misaligned runtime regions and drop warning
Ard Biesheuvel
ardb at kernel.org
Sun Nov 6 14:34:16 PST 2022
On Sun, 6 Nov 2022 at 20:38, Linus Torvalds
<torvalds at linux-foundation.org> wrote:
>
> [ Note: in quoting the patch below, I removed the '-' lines, so the
> quoted part is really just all that remains after the patch ]
>
> On Sun, Nov 6, 2022 at 6:54 AM Ard Biesheuvel <ardb at kernel.org> wrote:
> >
> > + if (region_is_misaligned(md)) {
> > + static bool __initdata code_is_misaligned;
> > +
> > /*
> > + * Regions that are not aligned to the OS page size cannot be
> > + * mapped with strict permissions, as those might interfere
> > + * with the permissions that are needed by the adjacent
> > + * region's mapping. However, if we haven't encountered any
> > + * misaligned runtime code regions so far, we can safely use
> > + * non-executable permissions for non-code regions.
> > */
> > + code_is_misaligned |= (type == EFI_RUNTIME_SERVICES_CODE);
> > +
> > + return code_is_misaligned ? pgprot_val(PAGE_KERNEL_EXEC)
> > + : pgprot_val(PAGE_KERNEL);
> > + }
>
> Ok, this seems like a nice improvement, in how it only does
> PAGE_KERNEL_EXEC if any of the regions end up being code.
>
> At the same time this is a much bigger change than just changing the
> WARN_ONCE() to pr_warn_once(), so rather than me applying it directly
> to my tree, I think I'd prefer it to go through the proper channels
> and the usual way.
>
> I'll still apply it to my private "this is the tree I actually boot on
> my M2" testing tree, since that has all the other Asahi patches too.
> That way I won't see the warning myself on that machine.
>
> So "Acked-by" on the patch, and I hope I'll see it with a future arm64
> or EFI pull request (and I'll holler loudly if it actually causes any
> issues on my M2, but I obviously don't expect it to)
>
Thanks for the ack. I'll drop it in the EFI fixes branch and let it
soak in -next for the week.
More information about the linux-arm-kernel
mailing list