On Thu, 23 Aug, at 09:37:28AM, Roland Dreier wrote:
This is bad enough that 4.4.148 and all newer 4.4.y crash early in boot on some EFI systems that I have.
Ugh, not good.
For now I am re-applying the "ensure cpa->pfn only contains page frame numbers" patch, ported on top of 4.4.151.
I can try to add it back and see what blows up, want me to attempt that?
Not sure what to say... the current state is obviously broken. If you look at what 02ff2769edbc is doing, it's clear that we're now shifting cpa->pfn by PAGE_SHIFT where we weren't before, so we're putting bogus values in the page table. And this is enough that my server system booting with EFI crashes early in boot efi_enter_virtual_mode() with the symptom that NX is improperly set on some pages (booting with "noexec=off" fixes things, although obviously I don't want to run that way). FWIW I can confirm that reverting the single patch 02ff2769edbc fixes things, as does the cpa->pfn fix I mentioned above.
It's hard for me to make a call on applying "ensure cpa->pfn only contains page frame numbers" without knowing the problems it caused before. The patch looks fine to me and I definitely need it, but maybe it exposes some other bug elsewhere? Maybe Ben or Matt remember more above why this was reverted in 4.4.106? Otherwise I'd say yeah, we should re-apply it, since I don't think we want to revert 02ff2769edbc.
For the record, I wasn't even aware it had been reverted.