Re: [Possible BUG] arm64: efi: efi_runtime_fixup_exception() and efi_call_virt_check_flags() both taint the kernel

From: Alexandru Elisei
Date: Wed Nov 09 2022 - 05:09:12 EST


Hi,

On Wed, Nov 09, 2022 at 10:07:00AM +0100, Ard Biesheuvel wrote:
> On Tue, 8 Nov 2022 at 11:10, Alexandru Elisei <alexandru.elisei@xxxxxxx> wrote:
> >
> ...
> >
> > Speaking as an user, I think it would be nice to revert the commit, that's
> > how I am running v6.1-rcX kernels on the machine, as updating the firmware
> > is not feasible right now. But I realize that I'm not the one maintaining
> > the code, so I don't have a strong opinion about it :) And it's better now
> > than it was at rc3, when the kernel was panicing.
> >
>
> I sent out a patch yesterday that tweaks the sync exception fixup
> handler to only disable the runtime service that triggered the
> exception. This means, of course, that you might hit it multiple times
> if several runtime service implementations are buggy, but there are
> only five or so that we actually use, so that shouldn't make a huge
> difference. But it also means a) we don't trigger other code paths
> that freak out when a runtime service that was available suddenly goes
> away and b) the diagnostics are more useful because we will find out
> which other runtime services are broken.
>
> Could you please test that patch? And for good measure, could you try
> something like
>
> efibootmgr -t 3
>
> (as root) to exercise the SetVariable() path as well?

Tried booting with the patch applied yesterday, no regression as far as I
could tell (still hitting the two add_taint() statements, but that's not
what the patch does).

I was trying to figure out how I could test that the other runtime services
are still working correctly, your suggestion is exactly what I was looking
for, thanks. The machine is a shared machine, will test when I get access
to it (hopefully later today) and post my findings.

Thanks,
Alex