[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.20.1801301409430.1797@nanos>
Date: Tue, 30 Jan 2018 14:10:20 +0100 (CET)
From: Thomas Gleixner <tglx@...utronix.de>
To: William Grant <william.grant@...onical.com>
cc: Ingo Molnar <mingo@...hat.com>, "H. Peter Anvin" <hpa@...or.com>,
x86@...nel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] x86: Fix overlap of i386 CPU_ENTRY_AREA with FIX_BTMAP
On Tue, 30 Jan 2018, William Grant wrote:
> Since commit 92a0f81d8957 ("x86/cpu_entry_area: Move it out of the
> fixmap"), i386's CPU_ENTRY_AREA has been mapped to the memory area just
> below FIXADDR_START. But already immediately before FIXADDR_START is the
> FIX_BTMAP area, which means that early_ioremap can collide with the
> entry area.
>
> It's especially bad on PAE where FIX_BTMAP_BEGIN gets aligned to exactly
> match CPU_ENTRY_AREA_BASE, so the first early_ioremap slot clobbers the
> IDT and causes interrupts during early boot to reset the system.
>
> The overlap wasn't a problem before the CPU entry area was introduced,
> as the fixmap has classically been preceded by the pkmap or vmalloc
> areas, neither of which is used until early_ioremap is out of the
> picture.
>
> Relocate CPU_ENTRY_AREA to below FIX_BTMAP, not just below the permanent
> fixmap area.
Nice catch. I'm sure I stared at that more than once....
Thanks,
tglx
Powered by blists - more mailing lists