x86/cpu_entry_area: Prevent wraparound in setup_cpu_entry_area_ptes() on 32bit
authorThomas Gleixner <tglx@linutronix.de>
Sat, 23 Dec 2017 18:45:11 +0000 (19:45 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Dec 2017 16:53:45 +0000 (17:53 +0100)
commit752d01704ad18371fa6d15ef16f5dea7972be821
tree88a5c3bb173c3d9d3bcfcdebdea06b18902c252a
parent763f7eaf606281ccfaa2f95445219f797697ed70
x86/cpu_entry_area: Prevent wraparound in setup_cpu_entry_area_ptes() on 32bit

commit f6c4fd506cb626e4346aa81688f255e593a7c5a0 upstream.

The loop which populates the CPU entry area PMDs can wrap around on 32bit
machines when the number of CPUs is small.

It worked wonderful for NR_CPUS=64 for whatever reason and the moron who
wrote that code did not bother to test it with !SMP.

Check for the wraparound to fix it.

Fixes: 92a0f81d8957 ("x86/cpu_entry_area: Move it out of the fixmap")
Reported-by: kernel test robot <fengguang.wu@intel.com>
Signed-off-by: Thomas "Feels stupid" Gleixner <tglx@linutronix.de>
Tested-by: Borislav Petkov <bp@alien8.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/mm/cpu_entry_area.c