Re: [PATCH v3] x86/e820: Fix handling of subpage regions when calculating nosave ranges

From: Ingo Molnar
Date: Sun Apr 06 2025 - 14:37:09 EST



* Ingo Molnar <mingo@xxxxxxxxxx> wrote:

>
> * Myrrh Periwinkle <myrrhperiwinkle@xxxxxxxxxxx> wrote:
>
> > The current implementation of e820__register_nosave_regions suffers from
> > multiple serious issues:
> > - The end of last region is tracked by PFN, causing it to find holes
> > that aren't there if two consecutive subpage regions are present
> > - The nosave PFN ranges derived from holes are rounded out (instead of
> > rounded in) which makes it inconsistent with how explicitly reserved
> > regions are handled
> >
> > Fix this by:
> > - Treating reserved regions as if they were holes, to ensure consistent
> > handling (rounding out nosave PFN ranges is more correct as the
> > kernel does not use partial pages)
> > - Tracking the end of the last RAM region by address instead of pages
> > to detect holes more precisely
> >
> > Cc: stable@xxxxxxxxxxxxxxx
> > Fixes: e5540f875404 ("x86/boot/e820: Consolidate 'struct e820_entry *entry' local variable names")
>
> So why is this SHA1 indicated as the root cause? AFAICS that commit
> does nothing but cleanups, so it cannot cause such regressions.

BTW.:

A) "It was the first random commit that seemed related, sry"
B) "It's a 15 years old bug, but I wanted to indicate a fresh, 8-year old bug to get this into -stable. Busted!"

... are perfectly fine answers in my book. :-)

I'm glad about the fixes, I'm just curious how the Fixes tag came about.

Thanks,

Ingo