lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Z_QMghKBVFz_EDap@gmail.com>
Date: Mon, 7 Apr 2025 19:33:54 +0200
From: Ingo Molnar <mingo@...nel.org>
To: Myrrh Periwinkle <myrrhperiwinkle@...labs.xyz>
Cc: Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>,
	Borislav Petkov <bp@...en8.de>,
	Dave Hansen <dave.hansen@...ux.intel.com>, x86@...nel.org,
	"H. Peter Anvin" <hpa@...or.com>, linux-kernel@...r.kernel.org,
	stable@...r.kernel.org, Roberto Ricci <io@...icci.it>
Subject: Re: [PATCH v3] x86/e820: Fix handling of subpage regions when
 calculating nosave ranges


* Myrrh Periwinkle <myrrhperiwinkle@...labs.xyz> wrote:

> On 4/7/25 01:36, Ingo Molnar wrote:
> 
> > * Ingo Molnar<mingo@...nel.org> wrote:
> > 
> > > * Myrrh Periwinkle<myrrhperiwinkle@...labs.xyz> 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@...r.kernel.org
> > > > 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!"
> 
> You got me :) How did you know that this is a 15 years old bug?

Call it a 'regression radar' that every kernel maintainer develops 
after their first 20 years or so - each bug has a distinct feeling
to them, and this one felt genuinely *ancient*.

> [...] (although I didn't think the age of the bug a patch fixes would 
> affect its chances of getting to -stable)

Yeah, it doesn't really affect its -stable elibility much once we move 
outside the ~6-12 months window that upstream recognizes as a 
semi-recent regression - it was mostly my lame attempt at deadpan 
humor, trying to play off 15 year old bugs against 8 year old bugs as 
if 8 years old bugs were fresh. Yeah, I know, it's not funny even to me 
anymore, I'm weird that way. ;-)

> This specific revision was picked since it's the latest one that this 
> patch can be straightforwardly applied to (there is a (trivial) merge 
> conflict with -stable, though).

Yeah. So in the x86/urgent commit I've tagged the other commit you 
pinpointed in your followup mail:

    Fixes: e8eff5ac294e ("[PATCH] Make swsusp avoid memory holes and reserved memory regions on x86_64")

Just to give backporters *some* chance at fixing this ancient bug
in older kernels, if they really want to.

Thanks,

	Ingo

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ