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

Commit 57d36294 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 mm cleanups from Ingo Molnar:
 "Two cleanups: simplify parse_setup_data() and sanitize_e820_map()
  usage"

* 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86, e820: Clean up sanitize_e820_map() users
  x86, setup: Let early_memremap() handle page alignment
parents a8f76842 d574ffa1
Loading
Loading
Loading
Loading
+8 −18
Original line number Original line Diff line number Diff line
@@ -184,9 +184,9 @@ void __init e820_print_map(char *who)
 * overwritten in the same location, starting at biosmap.
 * overwritten in the same location, starting at biosmap.
 *
 *
 * The integer pointed to by pnr_map must be valid on entry (the
 * The integer pointed to by pnr_map must be valid on entry (the
 * current number of valid entries located at biosmap) and will
 * current number of valid entries located at biosmap). If the
 * be updated on return, with the new number of valid entries
 * sanitizing succeeds the *pnr_map will be updated with the new
 * (something no more than max_nr_map.)
 * number of valid entries (something no more than max_nr_map).
 *
 *
 * The return value from sanitize_e820_map() is zero if it
 * The return value from sanitize_e820_map() is zero if it
 * successfully 'sanitized' the map entries passed in, and is -1
 * successfully 'sanitized' the map entries passed in, and is -1
@@ -561,23 +561,15 @@ u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type,


void __init update_e820(void)
void __init update_e820(void)
{
{
	u32 nr_map;
	if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map))

	nr_map = e820.nr_map;
	if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &nr_map))
		return;
		return;
	e820.nr_map = nr_map;
	printk(KERN_INFO "e820: modified physical RAM map:\n");
	printk(KERN_INFO "e820: modified physical RAM map:\n");
	e820_print_map("modified");
	e820_print_map("modified");
}
}
static void __init update_e820_saved(void)
static void __init update_e820_saved(void)
{
{
	u32 nr_map;
	sanitize_e820_map(e820_saved.map, ARRAY_SIZE(e820_saved.map),

				&e820_saved.nr_map);
	nr_map = e820_saved.nr_map;
	if (sanitize_e820_map(e820_saved.map, ARRAY_SIZE(e820_saved.map), &nr_map))
		return;
	e820_saved.nr_map = nr_map;
}
}
#define MAX_GAP_END 0x100000000ull
#define MAX_GAP_END 0x100000000ull
/*
/*
@@ -898,11 +890,9 @@ early_param("memmap", parse_memmap_opt);
void __init finish_e820_parsing(void)
void __init finish_e820_parsing(void)
{
{
	if (userdef) {
	if (userdef) {
		u32 nr = e820.nr_map;
		if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map),

					&e820.nr_map) < 0)
		if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &nr) < 0)
			early_panic("Invalid user supplied memory map");
			early_panic("Invalid user supplied memory map");
		e820.nr_map = nr;


		printk(KERN_INFO "e820: user-defined physical RAM map:\n");
		printk(KERN_INFO "e820: user-defined physical RAM map:\n");
		e820_print_map("user");
		e820_print_map("user");
+3 −5
Original line number Original line Diff line number Diff line
@@ -431,15 +431,13 @@ static void __init parse_setup_data(void)


	pa_data = boot_params.hdr.setup_data;
	pa_data = boot_params.hdr.setup_data;
	while (pa_data) {
	while (pa_data) {
		u32 data_len, map_len, data_type;
		u32 data_len, data_type;


		map_len = max(PAGE_SIZE - (pa_data & ~PAGE_MASK),
		data = early_memremap(pa_data, sizeof(*data));
			      (u64)sizeof(struct setup_data));
		data = early_memremap(pa_data, map_len);
		data_len = data->len + sizeof(struct setup_data);
		data_len = data->len + sizeof(struct setup_data);
		data_type = data->type;
		data_type = data->type;
		pa_next = data->next;
		pa_next = data->next;
		early_iounmap(data, map_len);
		early_iounmap(data, sizeof(*data));


		switch (data_type) {
		switch (data_type) {
		case SETUP_E820_EXT:
		case SETUP_E820_EXT: