Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2216d199 authored by Yinghai Lu's avatar Yinghai Lu Committed by Ingo Molnar
Browse files

x86: fix CONFIG_X86_RESERVE_LOW_64K=y



The bad_bios_dmi_table() quirk never triggered because we do DMI setup
too late. Move it a bit earlier.

Also change the CONFIG_X86_RESERVE_LOW_64K quirk to operate on the e820
table directly instead of messing with early reservations - this handles
overlaps (which do occur in this low range of RAM) more gracefully.

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 5871c6b0
Loading
Loading
Loading
Loading
+6 −5
Original line number Original line Diff line number Diff line
@@ -735,7 +735,8 @@ static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
		"%s detected: BIOS may corrupt low RAM, working it around.\n",
		"%s detected: BIOS may corrupt low RAM, working it around.\n",
		d->ident);
		d->ident);


	reserve_early_overlap_ok(0x0, 0x10000, "BIOS quirk");
	e820_update_range(0, 0x10000, E820_RAM, E820_RESERVED);
	sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);


	return 0;
	return 0;
}
}
@@ -784,8 +785,6 @@ void __init setup_arch(char **cmdline_p)
	printk(KERN_INFO "Command line: %s\n", boot_command_line);
	printk(KERN_INFO "Command line: %s\n", boot_command_line);
#endif
#endif


	dmi_check_system(bad_bios_dmi_table);

	early_cpu_init();
	early_cpu_init();
	early_ioremap_init();
	early_ioremap_init();


@@ -880,6 +879,10 @@ void __init setup_arch(char **cmdline_p)


	finish_e820_parsing();
	finish_e820_parsing();


	dmi_scan_machine();

	dmi_check_system(bad_bios_dmi_table);

#ifdef CONFIG_X86_32
#ifdef CONFIG_X86_32
	probe_roms();
	probe_roms();
#endif
#endif
@@ -967,8 +970,6 @@ void __init setup_arch(char **cmdline_p)
	vsmp_init();
	vsmp_init();
#endif
#endif


	dmi_scan_machine();

	io_delay_init();
	io_delay_init();


	/*
	/*