diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index adf3b04dc5822ca8a646bb638982107bb66ad484..26d60cc0e3708004ad1f13d71da8f595680e0964 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -368,6 +368,7 @@ void __init setup_arch(char **cmdline_p)
 	/* update e820 for memory not covered by WB MTRRs */
 	mtrr_bp_init();
 	if (mtrr_trim_uncached_memory(end_pfn)) {
+		remove_all_active_ranges();
 		e820_register_active_regions(0, 0, -1UL);
 		end_pfn = e820_end_of_ram();
 	}