From 5520b7e7d2d20ae2ab6e07b46c42cd43df9d2799 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 27 Jan 2017 11:59:46 +0100 Subject: x86/boot/e820: Remove spurious asm/e820/api.h inclusions A commonly used lowlevel x86 header, asm/pgtable.h, includes asm/e820/api.h spuriously, without making direct use of it. Removing it is not simple: over the years various .c code learned to rely on this indirect inclusion. Remove the unnecessary include - this should speed up the kernel build a bit, as a large header is not included anymore in totally unrelated code. Cc: Alex Thorlton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dan Williams Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Huang, Ying Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Linus Torvalds Cc: Paul Jackson Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Tejun Heo Cc: Thomas Gleixner Cc: Wei Yang Cc: Yinghai Lu Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar --- arch/x86/power/hibernate_64.c | 1 + 1 file changed, 1 insertion(+) (limited to 'arch/x86/power') diff --git a/arch/x86/power/hibernate_64.c b/arch/x86/power/hibernate_64.c index ded2e8272382..13e87bf86043 100644 --- a/arch/x86/power/hibernate_64.c +++ b/arch/x86/power/hibernate_64.c @@ -16,6 +16,7 @@ #include +#include #include #include #include -- cgit v1.2.3-59-g8ed1b From 8ec67d97bff592cc5b5325d1ee3646ebd7d635fc Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 27 Jan 2017 12:54:38 +0100 Subject: x86/boot/e820: Rename the basic e820 data types to 'struct e820_entry' and 'struct e820_array' The 'e820entry' and 'e820map' names have various annoyances: - the missing underscore departs from the usual kernel style and makes the code look weird, - in the past I kept confusing the 'map' with the 'entry', because a 'map' is ambiguous in that regard, - it's not really clear from the 'e820map' that this is a regular C array. Rename them to 'struct e820_entry' and 'struct e820_array' accordingly. ( Leave the legacy UAPI header alone but do the rename in the bootparam.h and e820/types.h file - outside tools relying on these defines should either adjust their code, or should use the legacy header, or should create their private copies for the definitions. ) No change in functionality. Cc: Alex Thorlton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dan Williams Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Huang, Ying Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Linus Torvalds Cc: Paul Jackson Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Tejun Heo Cc: Thomas Gleixner Cc: Wei Yang Cc: Yinghai Lu Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar --- Documentation/x86/zero-page.txt | 2 +- arch/x86/boot/compressed/eboot.c | 12 +++---- arch/x86/boot/compressed/kaslr.c | 2 +- arch/x86/boot/memory.c | 4 +-- arch/x86/include/asm/e820/api.h | 6 ++-- arch/x86/include/asm/e820/types.h | 4 +-- arch/x86/include/uapi/asm/bootparam.h | 2 +- arch/x86/include/uapi/asm/e820/types.h | 2 +- arch/x86/kernel/crash.c | 8 ++--- arch/x86/kernel/e820.c | 64 +++++++++++++++++----------------- arch/x86/kernel/kexec-bzimage64.c | 2 +- arch/x86/kernel/resource.c | 2 +- arch/x86/kernel/setup.c | 2 +- arch/x86/power/hibernate_64.c | 6 ++-- arch/x86/xen/setup.c | 12 +++---- tools/lguest/lguest.c | 2 +- 16 files changed, 66 insertions(+), 66 deletions(-) (limited to 'arch/x86/power') diff --git a/Documentation/x86/zero-page.txt b/Documentation/x86/zero-page.txt index 95a4d34af3fd..1746ddcfa50c 100644 --- a/Documentation/x86/zero-page.txt +++ b/Documentation/x86/zero-page.txt @@ -34,5 +34,5 @@ Offset Proto Name Meaning 1EF/001 ALL sentinel Used to detect broken bootloaders 290/040 ALL edd_mbr_sig_buffer EDD MBR signatures 2D0/A00 ALL e820_map E820 memory map table - (array of struct e820entry) + (array of struct e820_entry) D00/1EC ALL eddbuf EDD data (array of struct edd_info) diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c index 2066f74cf9b2..e1a3e2cde5cb 100644 --- a/arch/x86/boot/compressed/eboot.c +++ b/arch/x86/boot/compressed/eboot.c @@ -900,7 +900,7 @@ static void add_e820ext(struct boot_params *params, unsigned long size; e820ext->type = SETUP_E820_EXT; - e820ext->len = nr_entries * sizeof(struct e820entry); + e820ext->len = nr_entries * sizeof(struct e820_entry); e820ext->next = 0; data = (struct setup_data *)(unsigned long)params->hdr.setup_data; @@ -917,9 +917,9 @@ static void add_e820ext(struct boot_params *params, static efi_status_t setup_e820(struct boot_params *params, struct setup_data *e820ext, u32 e820ext_size) { - struct e820entry *e820_map = ¶ms->e820_map[0]; + struct e820_entry *e820_map = ¶ms->e820_map[0]; struct efi_info *efi = ¶ms->efi_info; - struct e820entry *prev = NULL; + struct e820_entry *prev = NULL; u32 nr_entries; u32 nr_desc; int i; @@ -983,14 +983,14 @@ static efi_status_t setup_e820(struct boot_params *params, } if (nr_entries == ARRAY_SIZE(params->e820_map)) { - u32 need = (nr_desc - i) * sizeof(struct e820entry) + + u32 need = (nr_desc - i) * sizeof(struct e820_entry) + sizeof(struct setup_data); if (!e820ext || e820ext_size < need) return EFI_BUFFER_TOO_SMALL; /* boot_params map full, switch to e820 extended */ - e820_map = (struct e820entry *)e820ext->data; + e820_map = (struct e820_entry *)e820ext->data; } e820_map->addr = d->phys_addr; @@ -1019,7 +1019,7 @@ static efi_status_t alloc_e820ext(u32 nr_desc, struct setup_data **e820ext, unsigned long size; size = sizeof(struct setup_data) + - sizeof(struct e820entry) * nr_desc; + sizeof(struct e820_entry) * nr_desc; if (*e820ext) { efi_call_early(free_pool, *e820ext); diff --git a/arch/x86/boot/compressed/kaslr.c b/arch/x86/boot/compressed/kaslr.c index 8b7c9e75edcb..17da12e92e99 100644 --- a/arch/x86/boot/compressed/kaslr.c +++ b/arch/x86/boot/compressed/kaslr.c @@ -426,7 +426,7 @@ static unsigned long slots_fetch_random(void) return 0; } -static void process_e820_entry(struct e820entry *entry, +static void process_e820_entry(struct e820_entry *entry, unsigned long minimum, unsigned long image_size) { diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c index db75d07c3645..331b3d831cc4 100644 --- a/arch/x86/boot/memory.c +++ b/arch/x86/boot/memory.c @@ -21,8 +21,8 @@ static int detect_memory_e820(void) { int count = 0; struct biosregs ireg, oreg; - struct e820entry *desc = boot_params.e820_map; - static struct e820entry buf; /* static so it is zeroed */ + struct e820_entry *desc = boot_params.e820_map; + static struct e820_entry buf; /* static so it is zeroed */ initregs(&ireg); ireg.ax = 0xe820; diff --git a/arch/x86/include/asm/e820/api.h b/arch/x86/include/asm/e820/api.h index 4163a83f1a37..848b9f61808c 100644 --- a/arch/x86/include/asm/e820/api.h +++ b/arch/x86/include/asm/e820/api.h @@ -4,8 +4,8 @@ #include /* see comment in arch/x86/kernel/e820.c */ -extern struct e820map *e820; -extern struct e820map *e820_saved; +extern struct e820_array *e820; +extern struct e820_array *e820_saved; extern unsigned long pci_mem_start; @@ -13,7 +13,7 @@ extern int e820_any_mapped(u64 start, u64 end, unsigned type); extern int e820_all_mapped(u64 start, u64 end, unsigned type); extern void e820_add_region(u64 start, u64 size, int type); extern void e820_print_map(char *who); -extern int sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, u32 *pnr_map); +extern int sanitize_e820_map(struct e820_entry *biosmap, int max_nr_map, u32 *pnr_map); extern u64 e820_update_range(u64 start, u64 size, unsigned old_type, unsigned new_type); extern u64 e820_remove_range(u64 start, u64 size, unsigned old_type, int checktype); extern void update_e820(void); diff --git a/arch/x86/include/asm/e820/types.h b/arch/x86/include/asm/e820/types.h index ce0e100b843c..05e25cabfafb 100644 --- a/arch/x86/include/asm/e820/types.h +++ b/arch/x86/include/asm/e820/types.h @@ -68,9 +68,9 @@ /* * The whole array of E820 entries: */ -struct e820map { +struct e820_array { __u32 nr_map; - struct e820entry map[E820_X_MAX]; + struct e820_entry map[E820_X_MAX]; }; /* diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h index 742333c3ffea..f0a7170d5a9d 100644 --- a/arch/x86/include/uapi/asm/bootparam.h +++ b/arch/x86/include/uapi/asm/bootparam.h @@ -152,7 +152,7 @@ struct boot_params { struct setup_header hdr; /* setup header */ /* 0x1f1 */ __u8 _pad7[0x290-0x1f1-sizeof(struct setup_header)]; __u32 edd_mbr_sig_buffer[EDD_MBR_SIG_MAX]; /* 0x290 */ - struct e820entry e820_map[E820MAX]; /* 0x2d0 */ + struct e820_entry e820_map[E820MAX]; /* 0x2d0 */ __u8 _pad8[48]; /* 0xcd0 */ struct edd_info eddbuf[EDDMAXNR]; /* 0xd00 */ __u8 _pad9[276]; /* 0xeec */ diff --git a/arch/x86/include/uapi/asm/e820/types.h b/arch/x86/include/uapi/asm/e820/types.h index 8e522eb120aa..54b812e80bac 100644 --- a/arch/x86/include/uapi/asm/e820/types.h +++ b/arch/x86/include/uapi/asm/e820/types.h @@ -10,7 +10,7 @@ * A single E820 map entry, describing a memory range of [addr...addr+size-1], * of 'type' memory type: */ -struct e820entry { +struct e820_entry { __u64 addr; __u64 size; __u32 type; diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c index 60c018530379..81b67df3b52f 100644 --- a/arch/x86/kernel/crash.c +++ b/arch/x86/kernel/crash.c @@ -504,7 +504,7 @@ static int prepare_elf_headers(struct kimage *image, void **addr, return ret; } -static int add_e820_entry(struct boot_params *params, struct e820entry *entry) +static int add_e820_entry(struct boot_params *params, struct e820_entry *entry) { unsigned int nr_e820_entries; @@ -513,7 +513,7 @@ static int add_e820_entry(struct boot_params *params, struct e820entry *entry) return 1; memcpy(¶ms->e820_map[nr_e820_entries], entry, - sizeof(struct e820entry)); + sizeof(struct e820_entry)); params->e820_entries++; return 0; } @@ -522,7 +522,7 @@ static int memmap_entry_callback(u64 start, u64 end, void *arg) { struct crash_memmap_data *cmd = arg; struct boot_params *params = cmd->params; - struct e820entry ei; + struct e820_entry ei; ei.addr = start; ei.size = end - start + 1; @@ -561,7 +561,7 @@ int crash_setup_memmap_entries(struct kimage *image, struct boot_params *params) { int i, ret = 0; unsigned long flags; - struct e820entry ei; + struct e820_entry ei; struct crash_memmap_data cmd; struct crash_mem *cmem; diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 49d54c5002fa..eeb9c9963a6b 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -40,10 +40,10 @@ * user can e.g. boot the original kernel with mem=1G while still booting the * next kernel with full memory. */ -static struct e820map initial_e820 __initdata; -static struct e820map initial_e820_saved __initdata; -struct e820map *e820 __refdata = &initial_e820; -struct e820map *e820_saved __refdata = &initial_e820_saved; +static struct e820_array initial_e820 __initdata; +static struct e820_array initial_e820_saved __initdata; +struct e820_array *e820 __refdata = &initial_e820; +struct e820_array *e820_saved __refdata = &initial_e820_saved; /* For PCI or other memory-mapped resources */ unsigned long pci_mem_start = 0xaeedbabe; @@ -61,7 +61,7 @@ e820_any_mapped(u64 start, u64 end, unsigned type) int i; for (i = 0; i < e820->nr_map; i++) { - struct e820entry *ei = &e820->map[i]; + struct e820_entry *ei = &e820->map[i]; if (type && ei->type != type) continue; @@ -84,7 +84,7 @@ int __init e820_all_mapped(u64 start, u64 end, unsigned type) int i; for (i = 0; i < e820->nr_map; i++) { - struct e820entry *ei = &e820->map[i]; + struct e820_entry *ei = &e820->map[i]; if (type && ei->type != type) continue; @@ -110,7 +110,7 @@ int __init e820_all_mapped(u64 start, u64 end, unsigned type) /* * Add a memory region to the kernel e820 map. */ -static void __init __e820_add_region(struct e820map *e820x, u64 start, u64 size, +static void __init __e820_add_region(struct e820_array *e820x, u64 start, u64 size, int type) { int x = e820x->nr_map; @@ -185,7 +185,7 @@ void __init e820_print_map(char *who) * numbered type. * * The input parameter biosmap points to an array of 'struct - * e820entry' which on entry has elements in the range [0, *pnr_map) + * e820_entry' which on entry has elements in the range [0, *pnr_map) * valid, and which has space for up to max_nr_map entries. * On return, the resulting sanitized e820 map entries will be in * overwritten in the same location, starting at biosmap. @@ -238,7 +238,7 @@ void __init e820_print_map(char *who) * ______________________4_ */ struct change_member { - struct e820entry *pbios; /* pointer to original bios entry */ + struct e820_entry *pbios; /* pointer to original bios entry */ unsigned long long addr; /* address for this change point */ }; @@ -259,13 +259,13 @@ static int __init cpcompare(const void *a, const void *b) return (ap->addr != ap->pbios->addr) - (bp->addr != bp->pbios->addr); } -int __init sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, +int __init sanitize_e820_map(struct e820_entry *biosmap, int max_nr_map, u32 *pnr_map) { static struct change_member change_point_list[2*E820_X_MAX] __initdata; static struct change_member *change_point[2*E820_X_MAX] __initdata; - static struct e820entry *overlap_list[E820_X_MAX] __initdata; - static struct e820entry new_bios[E820_X_MAX] __initdata; + static struct e820_entry *overlap_list[E820_X_MAX] __initdata; + static struct e820_entry new_bios[E820_X_MAX] __initdata; unsigned long current_type, last_type; unsigned long long last_addr; int chgidx; @@ -379,13 +379,13 @@ int __init sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, new_nr = new_bios_entry; /* copy new bios mapping into original location */ - memcpy(biosmap, new_bios, new_nr * sizeof(struct e820entry)); + memcpy(biosmap, new_bios, new_nr * sizeof(struct e820_entry)); *pnr_map = new_nr; return 0; } -static int __init __append_e820_map(struct e820entry *biosmap, int nr_map) +static int __init __append_e820_map(struct e820_entry *biosmap, int nr_map) { while (nr_map) { u64 start = biosmap->addr; @@ -414,7 +414,7 @@ static int __init __append_e820_map(struct e820entry *biosmap, int nr_map) * will have given us a memory map that we can use to properly * set up memory. If we aren't, we'll fake a memory map. */ -static int __init append_e820_map(struct e820entry *biosmap, int nr_map) +static int __init append_e820_map(struct e820_entry *biosmap, int nr_map) { /* Only one memory region (or negative)? Ignore it */ if (nr_map < 2) @@ -423,7 +423,7 @@ static int __init append_e820_map(struct e820entry *biosmap, int nr_map) return __append_e820_map(biosmap, nr_map); } -static u64 __init __e820_update_range(struct e820map *e820x, u64 start, +static u64 __init __e820_update_range(struct e820_array *e820x, u64 start, u64 size, unsigned old_type, unsigned new_type) { @@ -445,7 +445,7 @@ static u64 __init __e820_update_range(struct e820map *e820x, u64 start, printk(KERN_CONT "\n"); for (i = 0; i < e820x->nr_map; i++) { - struct e820entry *ei = &e820x->map[i]; + struct e820_entry *ei = &e820x->map[i]; u64 final_start, final_end; u64 ei_end; @@ -524,7 +524,7 @@ u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type, printk(KERN_CONT "\n"); for (i = 0; i < e820->nr_map; i++) { - struct e820entry *ei = &e820->map[i]; + struct e820_entry *ei = &e820->map[i]; u64 final_start, final_end; u64 ei_end; @@ -535,7 +535,7 @@ u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type, /* totally covered? */ if (ei->addr >= start && ei_end <= end) { real_removed_size += ei->size; - memset(ei, 0, sizeof(struct e820entry)); + memset(ei, 0, sizeof(struct e820_entry)); continue; } @@ -658,16 +658,16 @@ __init void e820_setup_gap(void) */ __init void e820_reallocate_tables(void) { - struct e820map *n; + struct e820_array *n; int size; - size = offsetof(struct e820map, map) + sizeof(struct e820entry) * e820->nr_map; + size = offsetof(struct e820_array, map) + sizeof(struct e820_entry) * e820->nr_map; n = kmalloc(size, GFP_KERNEL); BUG_ON(!n); memcpy(n, e820, size); e820 = n; - size = offsetof(struct e820map, map) + sizeof(struct e820entry) * e820_saved->nr_map; + size = offsetof(struct e820_array, map) + sizeof(struct e820_entry) * e820_saved->nr_map; n = kmalloc(size, GFP_KERNEL); BUG_ON(!n); memcpy(n, e820_saved, size); @@ -683,12 +683,12 @@ __init void e820_reallocate_tables(void) void __init parse_e820_ext(u64 phys_addr, u32 data_len) { int entries; - struct e820entry *extmap; + struct e820_entry *extmap; struct setup_data *sdata; sdata = early_memremap(phys_addr, data_len); - entries = sdata->len / sizeof(struct e820entry); - extmap = (struct e820entry *)(sdata->data); + entries = sdata->len / sizeof(struct e820_entry); + extmap = (struct e820_entry *)(sdata->data); __append_e820_map(extmap, entries); sanitize_e820_map(e820->map, ARRAY_SIZE(e820->map), &e820->nr_map); early_memunmap(sdata, data_len); @@ -712,7 +712,7 @@ void __init e820_mark_nosave_regions(unsigned long limit_pfn) unsigned long pfn = 0; for (i = 0; i < e820->nr_map; i++) { - struct e820entry *ei = &e820->map[i]; + struct e820_entry *ei = &e820->map[i]; if (pfn < PFN_UP(ei->addr)) register_nosave_region(pfn, PFN_UP(ei->addr)); @@ -738,7 +738,7 @@ static int __init e820_mark_nvs_memory(void) int i; for (i = 0; i < e820->nr_map; i++) { - struct e820entry *ei = &e820->map[i]; + struct e820_entry *ei = &e820->map[i]; if (ei->type == E820_NVS) acpi_nvs_register(ei->addr, ei->size); @@ -786,7 +786,7 @@ static unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type) unsigned long max_arch_pfn = MAX_ARCH_PFN; for (i = 0; i < e820->nr_map; i++) { - struct e820entry *ei = &e820->map[i]; + struct e820_entry *ei = &e820->map[i]; unsigned long start_pfn; unsigned long end_pfn; @@ -1040,7 +1040,7 @@ void __init e820_reserve_resources(void) } for (i = 0; i < e820_saved->nr_map; i++) { - struct e820entry *entry = &e820_saved->map[i]; + struct e820_entry *entry = &e820_saved->map[i]; firmware_map_add_early(entry->addr, entry->addr + entry->size, e820_type_to_string(entry->type)); @@ -1083,7 +1083,7 @@ void __init e820_reserve_resources_late(void) * avoid stolen RAM: */ for (i = 0; i < e820->nr_map; i++) { - struct e820entry *entry = &e820->map[i]; + struct e820_entry *entry = &e820->map[i]; u64 start, end; if (entry->type != E820_RAM) @@ -1145,7 +1145,7 @@ void __init setup_memory_map(void) char *who; who = x86_init.resources.memory_setup(); - memcpy(e820_saved, e820, sizeof(struct e820map)); + memcpy(e820_saved, e820, sizeof(struct e820_array)); printk(KERN_INFO "e820: BIOS-provided physical RAM map:\n"); e820_print_map(who); } @@ -1163,7 +1163,7 @@ void __init memblock_x86_fill(void) memblock_allow_resize(); for (i = 0; i < e820->nr_map; i++) { - struct e820entry *ei = &e820->map[i]; + struct e820_entry *ei = &e820->map[i]; end = ei->addr + ei->size; if (end != (resource_size_t)end) diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c index 2f4a3c8127f6..d70e8d65cc16 100644 --- a/arch/x86/kernel/kexec-bzimage64.c +++ b/arch/x86/kernel/kexec-bzimage64.c @@ -108,7 +108,7 @@ static int setup_e820_entries(struct boot_params *params) params->e820_entries = nr_e820_entries; memcpy(¶ms->e820_map, &e820_saved->map, - nr_e820_entries * sizeof(struct e820entry)); + nr_e820_entries * sizeof(struct e820_entry)); return 0; } diff --git a/arch/x86/kernel/resource.c b/arch/x86/kernel/resource.c index eb2021659c9e..06a6e8049070 100644 --- a/arch/x86/kernel/resource.c +++ b/arch/x86/kernel/resource.c @@ -25,7 +25,7 @@ static void resource_clip(struct resource *res, resource_size_t start, static void remove_e820_regions(struct resource *avail) { int i; - struct e820entry *entry; + struct e820_entry *entry; for (i = 0; i < e820->nr_map; i++) { entry = &e820->map[i]; diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 6e521831f6ba..d2bdda9c3d6f 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -459,7 +459,7 @@ static void __init e820_reserve_setup_data(void) } sanitize_e820_map(e820->map, ARRAY_SIZE(e820->map), &e820->nr_map); - memcpy(e820_saved, e820, sizeof(struct e820map)); + memcpy(e820_saved, e820, sizeof(struct e820_array)); printk(KERN_INFO "extended physical RAM map:\n"); e820_print_map("reserve setup_data"); } diff --git a/arch/x86/power/hibernate_64.c b/arch/x86/power/hibernate_64.c index 13e87bf86043..874aea614fcf 100644 --- a/arch/x86/power/hibernate_64.c +++ b/arch/x86/power/hibernate_64.c @@ -201,7 +201,7 @@ struct restore_data_record { * @map: the e820 map to be calculated * @buf: the md5 result to be stored to */ -static int get_e820_md5(struct e820map *map, void *buf) +static int get_e820_md5(struct e820_array *map, void *buf) { struct scatterlist sg; struct crypto_ahash *tfm; @@ -214,8 +214,8 @@ static int get_e820_md5(struct e820map *map, void *buf) { AHASH_REQUEST_ON_STACK(req, tfm); - size = offsetof(struct e820map, map) - + sizeof(struct e820entry) * map->nr_map; + size = offsetof(struct e820_array, map) + + sizeof(struct e820_entry) * map->nr_map; ahash_request_set_tfm(req, tfm); sg_init_one(&sg, (u8 *)map, size); ahash_request_set_callback(req, 0, NULL, NULL); diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index dd6ec15f91d4..7386a6e4c072 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c @@ -41,7 +41,7 @@ struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata; unsigned long xen_released_pages; /* E820 map used during setting up memory. */ -static struct e820entry xen_e820_map[E820_X_MAX] __initdata; +static struct e820_entry xen_e820_map[E820_X_MAX] __initdata; static u32 xen_e820_map_entries __initdata; /* @@ -198,7 +198,7 @@ void __init xen_inv_extra_mem(void) */ static unsigned long __init xen_find_pfn_range(unsigned long *min_pfn) { - const struct e820entry *entry = xen_e820_map; + const struct e820_entry *entry = xen_e820_map; unsigned int i; unsigned long done = 0; @@ -457,7 +457,7 @@ static unsigned long __init xen_foreach_remap_area(unsigned long nr_pages, { phys_addr_t start = 0; unsigned long ret_val = 0; - const struct e820entry *entry = xen_e820_map; + const struct e820_entry *entry = xen_e820_map; int i; /* @@ -601,7 +601,7 @@ static void __init xen_align_and_add_e820_region(phys_addr_t start, static void __init xen_ignore_unusable(void) { - struct e820entry *entry = xen_e820_map; + struct e820_entry *entry = xen_e820_map; unsigned int i; for (i = 0; i < xen_e820_map_entries; i++, entry++) { @@ -612,7 +612,7 @@ static void __init xen_ignore_unusable(void) bool __init xen_is_e820_reserved(phys_addr_t start, phys_addr_t size) { - struct e820entry *entry; + struct e820_entry *entry; unsigned mapcnt; phys_addr_t end; @@ -645,7 +645,7 @@ phys_addr_t __init xen_find_free_area(phys_addr_t size) { unsigned mapcnt; phys_addr_t addr, start; - struct e820entry *entry = xen_e820_map; + struct e820_entry *entry = xen_e820_map; for (mapcnt = 0; mapcnt < xen_e820_map_entries; mapcnt++, entry++) { if (entry->type != E820_RAM || entry->size < size) diff --git a/tools/lguest/lguest.c b/tools/lguest/lguest.c index 11c8d9bc762e..7deb8d4a976e 100644 --- a/tools/lguest/lguest.c +++ b/tools/lguest/lguest.c @@ -3339,7 +3339,7 @@ int main(int argc, char *argv[]) * simple, single region. */ boot->e820_entries = 1; - boot->e820_map[0] = ((struct e820entry) { 0, mem, E820_RAM }); + boot->e820_map[0] = ((struct e820_entry) { 0, mem, E820_RAM }); /* * The boot header contains a command line pointer: we put the command * line after the boot header. -- cgit v1.2.3-59-g8ed1b From acd4c048728814505fae8e224cf9074bd1ad291e Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 27 Jan 2017 13:20:53 +0100 Subject: x86/boot/e820: Rename 'e820_map' variables to 'e820_array' In line with the rename to 'struct e820_array', harmonize the naming of common e820 table variable names as well: e820 => e820_array e820_saved => e820_array_saved e820_map => e820_array initial_e820 => e820_array_init This makes the variable names more consistent and easier to grep for. No change in functionality. Cc: Alex Thorlton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dan Williams Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Huang, Ying Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Linus Torvalds Cc: Paul Jackson Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Tejun Heo Cc: Thomas Gleixner Cc: Wei Yang Cc: Yinghai Lu Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar --- Documentation/x86/zero-page.txt | 4 +- arch/x86/boot/compressed/eboot.c | 22 ++--- arch/x86/boot/compressed/kaslr.c | 2 +- arch/x86/boot/memory.c | 4 +- arch/x86/include/asm/e820/api.h | 6 +- arch/x86/include/asm/e820/types.h | 2 +- arch/x86/include/uapi/asm/bootparam.h | 2 +- arch/x86/kernel/crash.c | 2 +- arch/x86/kernel/e820.c | 148 +++++++++++++++++----------------- arch/x86/kernel/early-quirks.c | 2 +- arch/x86/kernel/kexec-bzimage64.c | 10 +-- arch/x86/kernel/resource.c | 4 +- arch/x86/kernel/setup.c | 10 +-- arch/x86/kernel/tboot.c | 8 +- arch/x86/lguest/boot.c | 6 +- arch/x86/platform/efi/efi.c | 2 +- arch/x86/power/hibernate_64.c | 4 +- arch/x86/xen/setup.c | 76 ++++++++--------- tools/lguest/lguest.c | 2 +- 19 files changed, 158 insertions(+), 158 deletions(-) (limited to 'arch/x86/power') diff --git a/Documentation/x86/zero-page.txt b/Documentation/x86/zero-page.txt index 1746ddcfa50c..b323b705f419 100644 --- a/Documentation/x86/zero-page.txt +++ b/Documentation/x86/zero-page.txt @@ -27,12 +27,12 @@ Offset Proto Name Meaning 1C0/020 ALL efi_info EFI 32 information (struct efi_info) 1E0/004 ALL alk_mem_k Alternative mem check, in KB 1E4/004 ALL scratch Scratch field for the kernel setup code -1E8/001 ALL e820_entries Number of entries in e820_map (below) +1E8/001 ALL e820_entries Number of entries in e820_array (below) 1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below) 1EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer (below) 1EF/001 ALL sentinel Used to detect broken bootloaders 290/040 ALL edd_mbr_sig_buffer EDD MBR signatures -2D0/A00 ALL e820_map E820 memory map table +2D0/A00 ALL e820_array E820 memory map table (array of struct e820_entry) D00/1EC ALL eddbuf EDD data (array of struct edd_info) diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c index e1a3e2cde5cb..b5cc1e72c63a 100644 --- a/arch/x86/boot/compressed/eboot.c +++ b/arch/x86/boot/compressed/eboot.c @@ -917,7 +917,7 @@ static void add_e820ext(struct boot_params *params, static efi_status_t setup_e820(struct boot_params *params, struct setup_data *e820ext, u32 e820ext_size) { - struct e820_entry *e820_map = ¶ms->e820_map[0]; + struct e820_entry *e820_array = ¶ms->e820_array[0]; struct efi_info *efi = ¶ms->efi_info; struct e820_entry *prev = NULL; u32 nr_entries; @@ -982,7 +982,7 @@ static efi_status_t setup_e820(struct boot_params *params, continue; } - if (nr_entries == ARRAY_SIZE(params->e820_map)) { + if (nr_entries == ARRAY_SIZE(params->e820_array)) { u32 need = (nr_desc - i) * sizeof(struct e820_entry) + sizeof(struct setup_data); @@ -990,18 +990,18 @@ static efi_status_t setup_e820(struct boot_params *params, return EFI_BUFFER_TOO_SMALL; /* boot_params map full, switch to e820 extended */ - e820_map = (struct e820_entry *)e820ext->data; + e820_array = (struct e820_entry *)e820ext->data; } - e820_map->addr = d->phys_addr; - e820_map->size = d->num_pages << PAGE_SHIFT; - e820_map->type = e820_type; - prev = e820_map++; + e820_array->addr = d->phys_addr; + e820_array->size = d->num_pages << PAGE_SHIFT; + e820_array->type = e820_type; + prev = e820_array++; nr_entries++; } - if (nr_entries > ARRAY_SIZE(params->e820_map)) { - u32 nr_e820ext = nr_entries - ARRAY_SIZE(params->e820_map); + if (nr_entries > ARRAY_SIZE(params->e820_array)) { + u32 nr_e820ext = nr_entries - ARRAY_SIZE(params->e820_array); add_e820ext(params, e820ext, nr_e820ext); nr_entries -= nr_e820ext; @@ -1055,9 +1055,9 @@ static efi_status_t exit_boot_func(efi_system_table_t *sys_table_arg, if (first) { nr_desc = *map->buff_size / *map->desc_size; - if (nr_desc > ARRAY_SIZE(p->boot_params->e820_map)) { + if (nr_desc > ARRAY_SIZE(p->boot_params->e820_array)) { u32 nr_e820ext = nr_desc - - ARRAY_SIZE(p->boot_params->e820_map); + ARRAY_SIZE(p->boot_params->e820_array); status = alloc_e820ext(nr_e820ext, &p->e820ext, &p->e820ext_size); diff --git a/arch/x86/boot/compressed/kaslr.c b/arch/x86/boot/compressed/kaslr.c index 17da12e92e99..f0e37236cfe1 100644 --- a/arch/x86/boot/compressed/kaslr.c +++ b/arch/x86/boot/compressed/kaslr.c @@ -518,7 +518,7 @@ static unsigned long find_random_phys_addr(unsigned long minimum, /* Verify potential e820 positions, appending to slots list. */ for (i = 0; i < boot_params->e820_entries; i++) { - process_e820_entry(&boot_params->e820_map[i], minimum, + process_e820_entry(&boot_params->e820_array[i], minimum, image_size); if (slot_area_index == MAX_SLOT_AREA) { debug_putstr("Aborted e820 scan (slot_areas full)!\n"); diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c index 331b3d831cc4..f2132b3e6880 100644 --- a/arch/x86/boot/memory.c +++ b/arch/x86/boot/memory.c @@ -21,7 +21,7 @@ static int detect_memory_e820(void) { int count = 0; struct biosregs ireg, oreg; - struct e820_entry *desc = boot_params.e820_map; + struct e820_entry *desc = boot_params.e820_array; static struct e820_entry buf; /* static so it is zeroed */ initregs(&ireg); @@ -66,7 +66,7 @@ static int detect_memory_e820(void) *desc++ = buf; count++; - } while (ireg.ebx && count < ARRAY_SIZE(boot_params.e820_map)); + } while (ireg.ebx && count < ARRAY_SIZE(boot_params.e820_array)); return boot_params.e820_entries = count; } diff --git a/arch/x86/include/asm/e820/api.h b/arch/x86/include/asm/e820/api.h index 4895544b17ab..0156532dd65a 100644 --- a/arch/x86/include/asm/e820/api.h +++ b/arch/x86/include/asm/e820/api.h @@ -4,8 +4,8 @@ #include /* see comment in arch/x86/kernel/e820.c */ -extern struct e820_array *e820; -extern struct e820_array *e820_saved; +extern struct e820_array *e820_array; +extern struct e820_array *e820_array_saved; extern unsigned long pci_mem_start; @@ -13,7 +13,7 @@ extern int e820_any_mapped(u64 start, u64 end, unsigned type); extern int e820_all_mapped(u64 start, u64 end, unsigned type); extern void e820_add_region(u64 start, u64 size, int type); extern void e820_print_map(char *who); -extern int sanitize_e820_map(struct e820_entry *biosmap, int max_nr_map, u32 *pnr_map); +extern int sanitize_e820_array(struct e820_entry *biosmap, int max_nr_map, u32 *pnr_map); extern u64 e820_update_range(u64 start, u64 size, unsigned old_type, unsigned new_type); extern u64 e820_remove_range(u64 start, u64 size, unsigned old_type, int checktype); extern void update_e820(void); diff --git a/arch/x86/include/asm/e820/types.h b/arch/x86/include/asm/e820/types.h index 05e25cabfafb..e3171867e126 100644 --- a/arch/x86/include/asm/e820/types.h +++ b/arch/x86/include/asm/e820/types.h @@ -21,7 +21,7 @@ * * This allows for bootstrap/firmware quirks such as possible duplicate * E820 entries that might need room in the same arrays, prior to the - * call to sanitize_e820_map() to remove duplicates. The allowance + * call to sanitize_e820_array() to remove duplicates. The allowance * of three memory map entries per node is "enough" entries for * the initial hardware platform motivating this mechanism to make * use of additional EFI map entries. Future platforms may want diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h index f0a7170d5a9d..702f1c6d804e 100644 --- a/arch/x86/include/uapi/asm/bootparam.h +++ b/arch/x86/include/uapi/asm/bootparam.h @@ -152,7 +152,7 @@ struct boot_params { struct setup_header hdr; /* setup header */ /* 0x1f1 */ __u8 _pad7[0x290-0x1f1-sizeof(struct setup_header)]; __u32 edd_mbr_sig_buffer[EDD_MBR_SIG_MAX]; /* 0x290 */ - struct e820_entry e820_map[E820MAX]; /* 0x2d0 */ + struct e820_entry e820_array[E820MAX]; /* 0x2d0 */ __u8 _pad8[48]; /* 0xcd0 */ struct edd_info eddbuf[EDDMAXNR]; /* 0xd00 */ __u8 _pad9[276]; /* 0xeec */ diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c index 81b67df3b52f..036d9140384d 100644 --- a/arch/x86/kernel/crash.c +++ b/arch/x86/kernel/crash.c @@ -512,7 +512,7 @@ static int add_e820_entry(struct boot_params *params, struct e820_entry *entry) if (nr_e820_entries >= E820MAX) return 1; - memcpy(¶ms->e820_map[nr_e820_entries], entry, + memcpy(¶ms->e820_array[nr_e820_entries], entry, sizeof(struct e820_entry)); params->e820_entries++; return 0; diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 1f75b95185b8..49d47d6b1afe 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -2,7 +2,7 @@ * Handle the memory map. * The functions here do the job until bootmem takes over. * - * Getting sanitize_e820_map() in sync with i386 version by applying change: + * Getting sanitize_e820_array() in sync with i386 version by applying change: * - Provisions for empty E820 memory regions (reported by certain BIOSes). * Alex Achenbach , December 2002. * Venkatesh Pallipadi @@ -27,11 +27,11 @@ #include /* - * The e820 map is the map that gets modified e.g. with command line parameters + * The e820 table is the array that gets modified e.g. with command line parameters * and that is also registered with modifications in the kernel resource tree * with the iomem_resource as parent. * - * The e820_saved is directly saved after the BIOS-provided memory map is + * The e820_array_saved is directly saved after the BIOS-provided memory map is * copied. It doesn't get modified afterwards. It's registered for the * /sys/firmware/memmap interface. * @@ -40,10 +40,10 @@ * user can e.g. boot the original kernel with mem=1G while still booting the * next kernel with full memory. */ -static struct e820_array initial_e820 __initdata; -static struct e820_array initial_e820_saved __initdata; -struct e820_array *e820 __refdata = &initial_e820; -struct e820_array *e820_saved __refdata = &initial_e820_saved; +static struct e820_array e820_array_init __initdata; +static struct e820_array initial_e820_array_saved __initdata; +struct e820_array *e820_array __refdata = &e820_array_init; +struct e820_array *e820_array_saved __refdata = &initial_e820_array_saved; /* For PCI or other memory-mapped resources */ unsigned long pci_mem_start = 0xaeedbabe; @@ -60,8 +60,8 @@ e820_any_mapped(u64 start, u64 end, unsigned type) { int i; - for (i = 0; i < e820->nr_map; i++) { - struct e820_entry *ei = &e820->map[i]; + for (i = 0; i < e820_array->nr_map; i++) { + struct e820_entry *ei = &e820_array->map[i]; if (type && ei->type != type) continue; @@ -83,8 +83,8 @@ int __init e820_all_mapped(u64 start, u64 end, unsigned type) { int i; - for (i = 0; i < e820->nr_map; i++) { - struct e820_entry *ei = &e820->map[i]; + for (i = 0; i < e820_array->nr_map; i++) { + struct e820_entry *ei = &e820_array->map[i]; if (type && ei->type != type) continue; @@ -130,7 +130,7 @@ static void __init __e820_add_region(struct e820_array *e820x, u64 start, u64 si void __init e820_add_region(u64 start, u64 size, int type) { - __e820_add_region(e820, start, size, type); + __e820_add_region(e820_array, start, size, type); } static void __init e820_print_type(u32 type) @@ -166,12 +166,12 @@ void __init e820_print_map(char *who) { int i; - for (i = 0; i < e820->nr_map; i++) { + for (i = 0; i < e820_array->nr_map; i++) { printk(KERN_INFO "%s: [mem %#018Lx-%#018Lx] ", who, - (unsigned long long) e820->map[i].addr, + (unsigned long long) e820_array->map[i].addr, (unsigned long long) - (e820->map[i].addr + e820->map[i].size - 1)); - e820_print_type(e820->map[i].type); + (e820_array->map[i].addr + e820_array->map[i].size - 1)); + e820_print_type(e820_array->map[i].type); printk(KERN_CONT "\n"); } } @@ -195,7 +195,7 @@ void __init e820_print_map(char *who) * sanitizing succeeds the *pnr_map will be updated with the new * 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_array() is zero if it * successfully 'sanitized' the map entries passed in, and is -1 * if it did nothing, which can happen if either of (1) it was * only passed one map entry, or (2) any of the input map entries @@ -259,7 +259,7 @@ static int __init cpcompare(const void *a, const void *b) return (ap->addr != ap->pbios->addr) - (bp->addr != bp->pbios->addr); } -int __init sanitize_e820_map(struct e820_entry *biosmap, int max_nr_map, +int __init sanitize_e820_array(struct e820_entry *biosmap, int max_nr_map, u32 *pnr_map) { static struct change_member change_point_list[2*E820_X_MAX] __initdata; @@ -385,7 +385,7 @@ int __init sanitize_e820_map(struct e820_entry *biosmap, int max_nr_map, return 0; } -static int __init __append_e820_map(struct e820_entry *biosmap, int nr_map) +static int __init __append_e820_array(struct e820_entry *biosmap, int nr_map) { while (nr_map) { u64 start = biosmap->addr; @@ -414,13 +414,13 @@ static int __init __append_e820_map(struct e820_entry *biosmap, int nr_map) * will have given us a memory map that we can use to properly * set up memory. If we aren't, we'll fake a memory map. */ -static int __init append_e820_map(struct e820_entry *biosmap, int nr_map) +static int __init append_e820_array(struct e820_entry *biosmap, int nr_map) { /* Only one memory region (or negative)? Ignore it */ if (nr_map < 2) return -1; - return __append_e820_map(biosmap, nr_map); + return __append_e820_array(biosmap, nr_map); } static u64 __init __e820_update_range(struct e820_array *e820x, u64 start, @@ -495,13 +495,13 @@ static u64 __init __e820_update_range(struct e820_array *e820x, u64 start, u64 __init e820_update_range(u64 start, u64 size, unsigned old_type, unsigned new_type) { - return __e820_update_range(e820, start, size, old_type, new_type); + return __e820_update_range(e820_array, start, size, old_type, new_type); } static u64 __init e820_update_range_saved(u64 start, u64 size, unsigned old_type, unsigned new_type) { - return __e820_update_range(e820_saved, start, size, old_type, + return __e820_update_range(e820_array_saved, start, size, old_type, new_type); } @@ -523,8 +523,8 @@ u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type, e820_print_type(old_type); printk(KERN_CONT "\n"); - for (i = 0; i < e820->nr_map; i++) { - struct e820_entry *ei = &e820->map[i]; + for (i = 0; i < e820_array->nr_map; i++) { + struct e820_entry *ei = &e820_array->map[i]; u64 final_start, final_end; u64 ei_end; @@ -568,15 +568,15 @@ u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type, void __init update_e820(void) { - if (sanitize_e820_map(e820->map, ARRAY_SIZE(e820->map), &e820->nr_map)) + if (sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map)) return; printk(KERN_INFO "e820: modified physical RAM map:\n"); e820_print_map("modified"); } -static void __init update_e820_saved(void) +static void __init update_e820_array_saved(void) { - sanitize_e820_map(e820_saved->map, ARRAY_SIZE(e820_saved->map), - &e820_saved->nr_map); + sanitize_e820_array(e820_array_saved->map, ARRAY_SIZE(e820_array_saved->map), + &e820_array_saved->nr_map); } #define MAX_GAP_END 0x100000000ull /* @@ -586,12 +586,12 @@ static int __init e820_search_gap(unsigned long *gapstart, unsigned long *gapsize) { unsigned long long last = MAX_GAP_END; - int i = e820->nr_map; + int i = e820_array->nr_map; int found = 0; while (--i >= 0) { - unsigned long long start = e820->map[i].addr; - unsigned long long end = start + e820->map[i].size; + unsigned long long start = e820_array->map[i].addr; + unsigned long long end = start + e820_array->map[i].size; /* * Since "last" is at most 4GB, we know we'll @@ -650,7 +650,7 @@ __init void e820_setup_gap(void) /* * Called late during init, in free_initmem(). * - * Initial e820 and e820_saved are largish __initdata arrays. + * Initial e820 and e820_array_saved are largish __initdata arrays. * Copy them to (usually much smaller) dynamically allocated area. * This is done after all tweaks we ever do to them: * all functions which modify them are __init functions, @@ -661,23 +661,23 @@ __init void e820_reallocate_tables(void) struct e820_array *n; int size; - size = offsetof(struct e820_array, map) + sizeof(struct e820_entry) * e820->nr_map; + size = offsetof(struct e820_array, map) + sizeof(struct e820_entry) * e820_array->nr_map; n = kmalloc(size, GFP_KERNEL); BUG_ON(!n); - memcpy(n, e820, size); - e820 = n; + memcpy(n, e820_array, size); + e820_array = n; - size = offsetof(struct e820_array, map) + sizeof(struct e820_entry) * e820_saved->nr_map; + size = offsetof(struct e820_array, map) + sizeof(struct e820_entry) * e820_array_saved->nr_map; n = kmalloc(size, GFP_KERNEL); BUG_ON(!n); - memcpy(n, e820_saved, size); - e820_saved = n; + memcpy(n, e820_array_saved, size); + e820_array_saved = n; } /** * Because of the size limitation of struct boot_params, only first * 128 E820 memory entries are passed to kernel via - * boot_params.e820_map, others are passed via SETUP_E820_EXT node of + * boot_params.e820_array, others are passed via SETUP_E820_EXT node of * linked list of struct setup_data, which is parsed here. */ void __init parse_e820_ext(u64 phys_addr, u32 data_len) @@ -689,8 +689,8 @@ void __init parse_e820_ext(u64 phys_addr, u32 data_len) sdata = early_memremap(phys_addr, data_len); entries = sdata->len / sizeof(struct e820_entry); extmap = (struct e820_entry *)(sdata->data); - __append_e820_map(extmap, entries); - sanitize_e820_map(e820->map, ARRAY_SIZE(e820->map), &e820->nr_map); + __append_e820_array(extmap, entries); + sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); early_memunmap(sdata, data_len); printk(KERN_INFO "e820: extended physical RAM map:\n"); e820_print_map("extended"); @@ -709,8 +709,8 @@ void __init e820_mark_nosave_regions(unsigned long limit_pfn) int i; unsigned long pfn = 0; - for (i = 0; i < e820->nr_map; i++) { - struct e820_entry *ei = &e820->map[i]; + for (i = 0; i < e820_array->nr_map; i++) { + struct e820_entry *ei = &e820_array->map[i]; if (pfn < PFN_UP(ei->addr)) register_nosave_region(pfn, PFN_UP(ei->addr)); @@ -734,8 +734,8 @@ static int __init e820_mark_nvs_memory(void) { int i; - for (i = 0; i < e820->nr_map; i++) { - struct e820_entry *ei = &e820->map[i]; + for (i = 0; i < e820_array->nr_map; i++) { + struct e820_entry *ei = &e820_array->map[i]; if (ei->type == E820_NVS) acpi_nvs_register(ei->addr, ei->size); @@ -747,7 +747,7 @@ core_initcall(e820_mark_nvs_memory); #endif /* - * pre allocated 4k and reserved it in memblock and e820_saved + * pre allocated 4k and reserved it in memblock and e820_array_saved */ u64 __init early_reserve_e820(u64 size, u64 align) { @@ -756,8 +756,8 @@ u64 __init early_reserve_e820(u64 size, u64 align) addr = __memblock_alloc_base(size, align, MEMBLOCK_ALLOC_ACCESSIBLE); if (addr) { e820_update_range_saved(addr, size, E820_RAM, E820_RESERVED); - printk(KERN_INFO "e820: update e820_saved for early_reserve_e820\n"); - update_e820_saved(); + printk(KERN_INFO "e820: update e820_array_saved for early_reserve_e820\n"); + update_e820_array_saved(); } return addr; @@ -782,8 +782,8 @@ static unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type) unsigned long last_pfn = 0; unsigned long max_arch_pfn = MAX_ARCH_PFN; - for (i = 0; i < e820->nr_map; i++) { - struct e820_entry *ei = &e820->map[i]; + for (i = 0; i < e820_array->nr_map; i++) { + struct e820_entry *ei = &e820_array->map[i]; unsigned long start_pfn; unsigned long end_pfn; @@ -874,7 +874,7 @@ static int __init parse_memmap_one(char *p) */ saved_max_pfn = e820_end_of_ram_pfn(); #endif - e820->nr_map = 0; + e820_array->nr_map = 0; userdef = 1; return 0; } @@ -921,8 +921,8 @@ early_param("memmap", parse_memmap_opt); void __init finish_e820_parsing(void) { if (userdef) { - if (sanitize_e820_map(e820->map, ARRAY_SIZE(e820->map), - &e820->nr_map) < 0) + if (sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), + &e820_array->nr_map) < 0) early_panic("Invalid user supplied memory map"); printk(KERN_INFO "e820: user-defined physical RAM map:\n"); @@ -1009,35 +1009,35 @@ void __init e820_reserve_resources(void) struct resource *res; u64 end; - res = alloc_bootmem(sizeof(struct resource) * e820->nr_map); + res = alloc_bootmem(sizeof(struct resource) * e820_array->nr_map); e820_res = res; - for (i = 0; i < e820->nr_map; i++) { - end = e820->map[i].addr + e820->map[i].size - 1; + for (i = 0; i < e820_array->nr_map; i++) { + end = e820_array->map[i].addr + e820_array->map[i].size - 1; if (end != (resource_size_t)end) { res++; continue; } - res->name = e820_type_to_string(e820->map[i].type); - res->start = e820->map[i].addr; + res->name = e820_type_to_string(e820_array->map[i].type); + res->start = e820_array->map[i].addr; res->end = end; - res->flags = e820_type_to_iomem_type(e820->map[i].type); - res->desc = e820_type_to_iores_desc(e820->map[i].type); + res->flags = e820_type_to_iomem_type(e820_array->map[i].type); + res->desc = e820_type_to_iores_desc(e820_array->map[i].type); /* * don't register the region that could be conflicted with * pci device BAR resource and insert them later in * pcibios_resource_survey() */ - if (do_mark_busy(e820->map[i].type, res)) { + if (do_mark_busy(e820_array->map[i].type, res)) { res->flags |= IORESOURCE_BUSY; insert_resource(&iomem_resource, res); } res++; } - for (i = 0; i < e820_saved->nr_map; i++) { - struct e820_entry *entry = &e820_saved->map[i]; + for (i = 0; i < e820_array_saved->nr_map; i++) { + struct e820_entry *entry = &e820_array_saved->map[i]; firmware_map_add_early(entry->addr, entry->addr + entry->size, e820_type_to_string(entry->type)); @@ -1069,7 +1069,7 @@ void __init e820_reserve_resources_late(void) struct resource *res; res = e820_res; - for (i = 0; i < e820->nr_map; i++) { + for (i = 0; i < e820_array->nr_map; i++) { if (!res->parent && res->end) insert_resource_expand_to_fit(&iomem_resource, res); res++; @@ -1079,8 +1079,8 @@ void __init e820_reserve_resources_late(void) * Try to bump up RAM regions to reasonable boundaries to * avoid stolen RAM: */ - for (i = 0; i < e820->nr_map; i++) { - struct e820_entry *entry = &e820->map[i]; + for (i = 0; i < e820_array->nr_map; i++) { + struct e820_entry *entry = &e820_array->map[i]; u64 start, end; if (entry->type != E820_RAM) @@ -1110,11 +1110,11 @@ char *__init default_machine_specific_memory_setup(void) * the next section from 1mb->appropriate_mem_k */ new_nr = boot_params.e820_entries; - sanitize_e820_map(boot_params.e820_map, - ARRAY_SIZE(boot_params.e820_map), + sanitize_e820_array(boot_params.e820_array, + ARRAY_SIZE(boot_params.e820_array), &new_nr); boot_params.e820_entries = new_nr; - if (append_e820_map(boot_params.e820_map, boot_params.e820_entries) + if (append_e820_array(boot_params.e820_array, boot_params.e820_entries) < 0) { u64 mem_size; @@ -1128,7 +1128,7 @@ char *__init default_machine_specific_memory_setup(void) who = "BIOS-e801"; } - e820->nr_map = 0; + e820_array->nr_map = 0; e820_add_region(0, LOWMEMSIZE(), E820_RAM); e820_add_region(HIGH_MEMORY, mem_size << 10, E820_RAM); } @@ -1142,7 +1142,7 @@ void __init setup_memory_map(void) char *who; who = x86_init.resources.memory_setup(); - memcpy(e820_saved, e820, sizeof(struct e820_array)); + memcpy(e820_array_saved, e820_array, sizeof(struct e820_array)); printk(KERN_INFO "e820: BIOS-provided physical RAM map:\n"); e820_print_map(who); } @@ -1159,8 +1159,8 @@ void __init memblock_x86_fill(void) */ memblock_allow_resize(); - for (i = 0; i < e820->nr_map; i++) { - struct e820_entry *ei = &e820->map[i]; + for (i = 0; i < e820_array->nr_map; i++) { + struct e820_entry *ei = &e820_array->map[i]; end = ei->addr + ei->size; if (end != (resource_size_t)end) diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c index 6a08e25a48d8..31d755534c36 100644 --- a/arch/x86/kernel/early-quirks.c +++ b/arch/x86/kernel/early-quirks.c @@ -547,7 +547,7 @@ intel_graphics_stolen(int num, int slot, int func, /* Mark this space as reserved */ e820_add_region(base, size, E820_RESERVED); - sanitize_e820_map(e820->map, ARRAY_SIZE(e820->map), &e820->nr_map); + sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); } static void __init intel_graphics_quirks(int num, int slot, int func) diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c index d70e8d65cc16..6bedcb9bad1e 100644 --- a/arch/x86/kernel/kexec-bzimage64.c +++ b/arch/x86/kernel/kexec-bzimage64.c @@ -100,14 +100,14 @@ static int setup_e820_entries(struct boot_params *params) { unsigned int nr_e820_entries; - nr_e820_entries = e820_saved->nr_map; + nr_e820_entries = e820_array_saved->nr_map; /* TODO: Pass entries more than E820MAX in bootparams setup data */ if (nr_e820_entries > E820MAX) nr_e820_entries = E820MAX; params->e820_entries = nr_e820_entries; - memcpy(¶ms->e820_map, &e820_saved->map, + memcpy(¶ms->e820_array, &e820_array_saved->map, nr_e820_entries * sizeof(struct e820_entry)); return 0; @@ -233,10 +233,10 @@ setup_boot_parameters(struct kimage *image, struct boot_params *params, nr_e820_entries = params->e820_entries; for (i = 0; i < nr_e820_entries; i++) { - if (params->e820_map[i].type != E820_RAM) + if (params->e820_array[i].type != E820_RAM) continue; - start = params->e820_map[i].addr; - end = params->e820_map[i].addr + params->e820_map[i].size - 1; + start = params->e820_array[i].addr; + end = params->e820_array[i].addr + params->e820_array[i].size - 1; if ((start <= 0x100000) && end > 0x100000) { mem_k = (end >> 10) - (0x100000 >> 10); diff --git a/arch/x86/kernel/resource.c b/arch/x86/kernel/resource.c index 06a6e8049070..aeec503e0a6d 100644 --- a/arch/x86/kernel/resource.c +++ b/arch/x86/kernel/resource.c @@ -27,8 +27,8 @@ static void remove_e820_regions(struct resource *avail) int i; struct e820_entry *entry; - for (i = 0; i < e820->nr_map; i++) { - entry = &e820->map[i]; + for (i = 0; i < e820_array->nr_map; i++) { + entry = &e820_array->map[i]; resource_clip(avail, entry->addr, entry->addr + entry->size - 1); diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index d2bdda9c3d6f..a91db2edee9e 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -458,8 +458,8 @@ static void __init e820_reserve_setup_data(void) early_memunmap(data, sizeof(*data)); } - sanitize_e820_map(e820->map, ARRAY_SIZE(e820->map), &e820->nr_map); - memcpy(e820_saved, e820, sizeof(struct e820_array)); + sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); + memcpy(e820_array_saved, e820_array, sizeof(struct e820_array)); printk(KERN_INFO "extended physical RAM map:\n"); e820_print_map("reserve setup_data"); } @@ -763,7 +763,7 @@ static void __init trim_bios_range(void) */ e820_remove_range(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_RAM, 1); - sanitize_e820_map(e820->map, ARRAY_SIZE(e820->map), &e820->nr_map); + sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); } /* called before trim_bios_range() to spare extra sanitize */ @@ -1026,7 +1026,7 @@ void __init setup_arch(char **cmdline_p) early_dump_pci_devices(); #endif - /* update the e820_saved too */ + /* update the e820_array_saved too */ e820_reserve_setup_data(); finish_e820_parsing(); @@ -1056,7 +1056,7 @@ void __init setup_arch(char **cmdline_p) if (ppro_with_ram_bug()) { e820_update_range(0x70000000ULL, 0x40000ULL, E820_RAM, E820_RESERVED); - sanitize_e820_map(e820->map, ARRAY_SIZE(e820->map), &e820->nr_map); + sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); printk(KERN_INFO "fixed physical RAM map:\n"); e820_print_map("bad_ppro"); } diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c index d047da50f2de..705f1207181a 100644 --- a/arch/x86/kernel/tboot.c +++ b/arch/x86/kernel/tboot.c @@ -188,12 +188,12 @@ static int tboot_setup_sleep(void) tboot->num_mac_regions = 0; - for (i = 0; i < e820->nr_map; i++) { - if ((e820->map[i].type != E820_RAM) - && (e820->map[i].type != E820_RESERVED_KERN)) + for (i = 0; i < e820_array->nr_map; i++) { + if ((e820_array->map[i].type != E820_RAM) + && (e820_array->map[i].type != E820_RESERVED_KERN)) continue; - add_mac_region(e820->map[i].addr, e820->map[i].size); + add_mac_region(e820_array->map[i].addr, e820_array->map[i].size); } tboot->acpi_sinfo.kernel_s3_resume_vector = diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c index 638d997327c9..09226a33e418 100644 --- a/arch/x86/lguest/boot.c +++ b/arch/x86/lguest/boot.c @@ -1178,9 +1178,9 @@ static __init char *lguest_memory_setup(void) * The Linux bootloader header contains an "e820" memory map: the * Launcher populated the first entry with our memory limit. */ - e820_add_region(boot_params.e820_map[0].addr, - boot_params.e820_map[0].size, - boot_params.e820_map[0].type); + e820_add_region(boot_params.e820_array[0].addr, + boot_params.e820_array[0].size, + boot_params.e820_array[0].type); /* This string is for the boot messages. */ return "LGUEST"; diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c index 528f682ec640..2543a11c9df8 100644 --- a/arch/x86/platform/efi/efi.c +++ b/arch/x86/platform/efi/efi.c @@ -167,7 +167,7 @@ static void __init do_add_efi_memmap(void) } e820_add_region(start, size, e820_type); } - sanitize_e820_map(e820->map, ARRAY_SIZE(e820->map), &e820->nr_map); + sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); } int __init efi_memblock_x86_reserve_range(void) diff --git a/arch/x86/power/hibernate_64.c b/arch/x86/power/hibernate_64.c index 874aea614fcf..c1a245e64ed1 100644 --- a/arch/x86/power/hibernate_64.c +++ b/arch/x86/power/hibernate_64.c @@ -232,7 +232,7 @@ static int get_e820_md5(struct e820_array *map, void *buf) static void hibernation_e820_save(void *buf) { - get_e820_md5(e820_saved, buf); + get_e820_md5(e820_array_saved, buf); } static bool hibernation_e820_mismatch(void *buf) @@ -245,7 +245,7 @@ static bool hibernation_e820_mismatch(void *buf) if (!memcmp(result, buf, MD5_DIGEST_SIZE)) return false; - ret = get_e820_md5(e820_saved, result); + ret = get_e820_md5(e820_array_saved, result); if (ret) return true; diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index 7386a6e4c072..3cc90e902064 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c @@ -41,8 +41,8 @@ struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata; unsigned long xen_released_pages; /* E820 map used during setting up memory. */ -static struct e820_entry xen_e820_map[E820_X_MAX] __initdata; -static u32 xen_e820_map_entries __initdata; +static struct e820_entry xen_e820_array[E820_X_MAX] __initdata; +static u32 xen_e820_array_entries __initdata; /* * Buffer used to remap identity mapped pages. We only need the virtual space. @@ -198,11 +198,11 @@ void __init xen_inv_extra_mem(void) */ static unsigned long __init xen_find_pfn_range(unsigned long *min_pfn) { - const struct e820_entry *entry = xen_e820_map; + const struct e820_entry *entry = xen_e820_array; unsigned int i; unsigned long done = 0; - for (i = 0; i < xen_e820_map_entries; i++, entry++) { + for (i = 0; i < xen_e820_array_entries; i++, entry++) { unsigned long s_pfn; unsigned long e_pfn; @@ -457,7 +457,7 @@ static unsigned long __init xen_foreach_remap_area(unsigned long nr_pages, { phys_addr_t start = 0; unsigned long ret_val = 0; - const struct e820_entry *entry = xen_e820_map; + const struct e820_entry *entry = xen_e820_array; int i; /* @@ -471,9 +471,9 @@ static unsigned long __init xen_foreach_remap_area(unsigned long nr_pages, * example) the DMI tables in a reserved region that begins on * a non-page boundary. */ - for (i = 0; i < xen_e820_map_entries; i++, entry++) { + for (i = 0; i < xen_e820_array_entries; i++, entry++) { phys_addr_t end = entry->addr + entry->size; - if (entry->type == E820_RAM || i == xen_e820_map_entries - 1) { + if (entry->type == E820_RAM || i == xen_e820_array_entries - 1) { unsigned long start_pfn = PFN_DOWN(start); unsigned long end_pfn = PFN_UP(end); @@ -601,10 +601,10 @@ static void __init xen_align_and_add_e820_region(phys_addr_t start, static void __init xen_ignore_unusable(void) { - struct e820_entry *entry = xen_e820_map; + struct e820_entry *entry = xen_e820_array; unsigned int i; - for (i = 0; i < xen_e820_map_entries; i++, entry++) { + for (i = 0; i < xen_e820_array_entries; i++, entry++) { if (entry->type == E820_UNUSABLE) entry->type = E820_RAM; } @@ -620,9 +620,9 @@ bool __init xen_is_e820_reserved(phys_addr_t start, phys_addr_t size) return false; end = start + size; - entry = xen_e820_map; + entry = xen_e820_array; - for (mapcnt = 0; mapcnt < xen_e820_map_entries; mapcnt++) { + for (mapcnt = 0; mapcnt < xen_e820_array_entries; mapcnt++) { if (entry->type == E820_RAM && entry->addr <= start && (entry->addr + entry->size) >= end) return false; @@ -645,9 +645,9 @@ phys_addr_t __init xen_find_free_area(phys_addr_t size) { unsigned mapcnt; phys_addr_t addr, start; - struct e820_entry *entry = xen_e820_map; + struct e820_entry *entry = xen_e820_array; - for (mapcnt = 0; mapcnt < xen_e820_map_entries; mapcnt++, entry++) { + for (mapcnt = 0; mapcnt < xen_e820_array_entries; mapcnt++, entry++) { if (entry->type != E820_RAM || entry->size < size) continue; start = entry->addr; @@ -750,8 +750,8 @@ char * __init xen_memory_setup(void) max_pfn = min(max_pfn, xen_start_info->nr_pages); mem_end = PFN_PHYS(max_pfn); - memmap.nr_entries = ARRAY_SIZE(xen_e820_map); - set_xen_guest_handle(memmap.buffer, xen_e820_map); + memmap.nr_entries = ARRAY_SIZE(xen_e820_array); + set_xen_guest_handle(memmap.buffer, xen_e820_array); op = xen_initial_domain() ? XENMEM_machine_memory_map : @@ -760,16 +760,16 @@ char * __init xen_memory_setup(void) if (rc == -ENOSYS) { BUG_ON(xen_initial_domain()); memmap.nr_entries = 1; - xen_e820_map[0].addr = 0ULL; - xen_e820_map[0].size = mem_end; + xen_e820_array[0].addr = 0ULL; + xen_e820_array[0].size = mem_end; /* 8MB slack (to balance backend allocations). */ - xen_e820_map[0].size += 8ULL << 20; - xen_e820_map[0].type = E820_RAM; + xen_e820_array[0].size += 8ULL << 20; + xen_e820_array[0].type = E820_RAM; rc = 0; } BUG_ON(rc); BUG_ON(memmap.nr_entries == 0); - xen_e820_map_entries = memmap.nr_entries; + xen_e820_array_entries = memmap.nr_entries; /* * Xen won't allow a 1:1 mapping to be created to UNUSABLE @@ -783,8 +783,8 @@ char * __init xen_memory_setup(void) xen_ignore_unusable(); /* Make sure the Xen-supplied memory map is well-ordered. */ - sanitize_e820_map(xen_e820_map, ARRAY_SIZE(xen_e820_map), - &xen_e820_map_entries); + sanitize_e820_array(xen_e820_array, ARRAY_SIZE(xen_e820_array), + &xen_e820_array_entries); max_pages = xen_get_max_pages(); @@ -811,13 +811,13 @@ char * __init xen_memory_setup(void) extra_pages = min3(EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)), extra_pages, max_pages - max_pfn); i = 0; - addr = xen_e820_map[0].addr; - size = xen_e820_map[0].size; - while (i < xen_e820_map_entries) { + addr = xen_e820_array[0].addr; + size = xen_e820_array[0].size; + while (i < xen_e820_array_entries) { bool discard = false; chunk_size = size; - type = xen_e820_map[i].type; + type = xen_e820_array[i].type; if (type == E820_RAM) { if (addr < mem_end) { @@ -840,9 +840,9 @@ char * __init xen_memory_setup(void) size -= chunk_size; if (size == 0) { i++; - if (i < xen_e820_map_entries) { - addr = xen_e820_map[i].addr; - size = xen_e820_map[i].size; + if (i < xen_e820_array_entries) { + addr = xen_e820_array[i].addr; + size = xen_e820_array[i].size; } } } @@ -861,7 +861,7 @@ char * __init xen_memory_setup(void) e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS, E820_RESERVED); - sanitize_e820_map(e820->map, ARRAY_SIZE(e820->map), &e820->nr_map); + sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); /* * Check whether the kernel itself conflicts with the target E820 map. @@ -923,21 +923,21 @@ char * __init xen_auto_xlated_memory_setup(void) int i; int rc; - memmap.nr_entries = ARRAY_SIZE(xen_e820_map); - set_xen_guest_handle(memmap.buffer, xen_e820_map); + memmap.nr_entries = ARRAY_SIZE(xen_e820_array); + set_xen_guest_handle(memmap.buffer, xen_e820_array); rc = HYPERVISOR_memory_op(XENMEM_memory_map, &memmap); if (rc < 0) panic("No memory map (%d)\n", rc); - xen_e820_map_entries = memmap.nr_entries; + xen_e820_array_entries = memmap.nr_entries; - sanitize_e820_map(xen_e820_map, ARRAY_SIZE(xen_e820_map), - &xen_e820_map_entries); + sanitize_e820_array(xen_e820_array, ARRAY_SIZE(xen_e820_array), + &xen_e820_array_entries); - for (i = 0; i < xen_e820_map_entries; i++) - e820_add_region(xen_e820_map[i].addr, xen_e820_map[i].size, - xen_e820_map[i].type); + for (i = 0; i < xen_e820_array_entries; i++) + e820_add_region(xen_e820_array[i].addr, xen_e820_array[i].size, + xen_e820_array[i].type); /* Remove p2m info, it is not needed. */ xen_start_info->mfn_list = 0; diff --git a/tools/lguest/lguest.c b/tools/lguest/lguest.c index 7deb8d4a976e..92a1fe3c07eb 100644 --- a/tools/lguest/lguest.c +++ b/tools/lguest/lguest.c @@ -3339,7 +3339,7 @@ int main(int argc, char *argv[]) * simple, single region. */ boot->e820_entries = 1; - boot->e820_map[0] = ((struct e820_entry) { 0, mem, E820_RAM }); + boot->e820_array[0] = ((struct e820_entry) { 0, mem, E820_RAM }); /* * The boot header contains a command line pointer: we put the command * line after the boot header. -- cgit v1.2.3-59-g8ed1b From 61a50101638254d38e3f4281265b44de0f2cba4e Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 27 Jan 2017 13:54:38 +0100 Subject: x86/boot/e820: Rename everything to e820_table No change in functionality. Cc: Alex Thorlton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dan Williams Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Huang, Ying Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Linus Torvalds Cc: Paul Jackson Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Tejun Heo Cc: Thomas Gleixner Cc: Wei Yang Cc: Yinghai Lu Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar --- Documentation/x86/zero-page.txt | 4 +- arch/x86/boot/compressed/eboot.c | 22 ++--- arch/x86/boot/compressed/kaslr.c | 2 +- arch/x86/boot/memory.c | 4 +- arch/x86/include/asm/e820/api.h | 6 +- arch/x86/include/asm/e820/types.h | 4 +- arch/x86/include/uapi/asm/bootparam.h | 2 +- arch/x86/kernel/crash.c | 2 +- arch/x86/kernel/e820.c | 152 +++++++++++++++++----------------- arch/x86/kernel/early-quirks.c | 2 +- arch/x86/kernel/kexec-bzimage64.c | 10 +-- arch/x86/kernel/resource.c | 4 +- arch/x86/kernel/setup.c | 10 +-- arch/x86/kernel/tboot.c | 8 +- arch/x86/lguest/boot.c | 6 +- arch/x86/platform/efi/efi.c | 2 +- arch/x86/power/hibernate_64.c | 8 +- arch/x86/xen/setup.c | 76 ++++++++--------- tools/lguest/lguest.c | 2 +- 19 files changed, 163 insertions(+), 163 deletions(-) (limited to 'arch/x86/power') diff --git a/Documentation/x86/zero-page.txt b/Documentation/x86/zero-page.txt index b323b705f419..363dca7b446b 100644 --- a/Documentation/x86/zero-page.txt +++ b/Documentation/x86/zero-page.txt @@ -27,12 +27,12 @@ Offset Proto Name Meaning 1C0/020 ALL efi_info EFI 32 information (struct efi_info) 1E0/004 ALL alk_mem_k Alternative mem check, in KB 1E4/004 ALL scratch Scratch field for the kernel setup code -1E8/001 ALL e820_entries Number of entries in e820_array (below) +1E8/001 ALL e820_entries Number of entries in e820_table (below) 1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below) 1EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer (below) 1EF/001 ALL sentinel Used to detect broken bootloaders 290/040 ALL edd_mbr_sig_buffer EDD MBR signatures -2D0/A00 ALL e820_array E820 memory map table +2D0/A00 ALL e820_table E820 memory map table (array of struct e820_entry) D00/1EC ALL eddbuf EDD data (array of struct edd_info) diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c index b5cc1e72c63a..04c406f9aee3 100644 --- a/arch/x86/boot/compressed/eboot.c +++ b/arch/x86/boot/compressed/eboot.c @@ -917,7 +917,7 @@ static void add_e820ext(struct boot_params *params, static efi_status_t setup_e820(struct boot_params *params, struct setup_data *e820ext, u32 e820ext_size) { - struct e820_entry *e820_array = ¶ms->e820_array[0]; + struct e820_entry *e820_table = ¶ms->e820_table[0]; struct efi_info *efi = ¶ms->efi_info; struct e820_entry *prev = NULL; u32 nr_entries; @@ -982,7 +982,7 @@ static efi_status_t setup_e820(struct boot_params *params, continue; } - if (nr_entries == ARRAY_SIZE(params->e820_array)) { + if (nr_entries == ARRAY_SIZE(params->e820_table)) { u32 need = (nr_desc - i) * sizeof(struct e820_entry) + sizeof(struct setup_data); @@ -990,18 +990,18 @@ static efi_status_t setup_e820(struct boot_params *params, return EFI_BUFFER_TOO_SMALL; /* boot_params map full, switch to e820 extended */ - e820_array = (struct e820_entry *)e820ext->data; + e820_table = (struct e820_entry *)e820ext->data; } - e820_array->addr = d->phys_addr; - e820_array->size = d->num_pages << PAGE_SHIFT; - e820_array->type = e820_type; - prev = e820_array++; + e820_table->addr = d->phys_addr; + e820_table->size = d->num_pages << PAGE_SHIFT; + e820_table->type = e820_type; + prev = e820_table++; nr_entries++; } - if (nr_entries > ARRAY_SIZE(params->e820_array)) { - u32 nr_e820ext = nr_entries - ARRAY_SIZE(params->e820_array); + if (nr_entries > ARRAY_SIZE(params->e820_table)) { + u32 nr_e820ext = nr_entries - ARRAY_SIZE(params->e820_table); add_e820ext(params, e820ext, nr_e820ext); nr_entries -= nr_e820ext; @@ -1055,9 +1055,9 @@ static efi_status_t exit_boot_func(efi_system_table_t *sys_table_arg, if (first) { nr_desc = *map->buff_size / *map->desc_size; - if (nr_desc > ARRAY_SIZE(p->boot_params->e820_array)) { + if (nr_desc > ARRAY_SIZE(p->boot_params->e820_table)) { u32 nr_e820ext = nr_desc - - ARRAY_SIZE(p->boot_params->e820_array); + ARRAY_SIZE(p->boot_params->e820_table); status = alloc_e820ext(nr_e820ext, &p->e820ext, &p->e820ext_size); diff --git a/arch/x86/boot/compressed/kaslr.c b/arch/x86/boot/compressed/kaslr.c index f0e37236cfe1..a47f832664f2 100644 --- a/arch/x86/boot/compressed/kaslr.c +++ b/arch/x86/boot/compressed/kaslr.c @@ -518,7 +518,7 @@ static unsigned long find_random_phys_addr(unsigned long minimum, /* Verify potential e820 positions, appending to slots list. */ for (i = 0; i < boot_params->e820_entries; i++) { - process_e820_entry(&boot_params->e820_array[i], minimum, + process_e820_entry(&boot_params->e820_table[i], minimum, image_size); if (slot_area_index == MAX_SLOT_AREA) { debug_putstr("Aborted e820 scan (slot_areas full)!\n"); diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c index f2132b3e6880..db62445b75aa 100644 --- a/arch/x86/boot/memory.c +++ b/arch/x86/boot/memory.c @@ -21,7 +21,7 @@ static int detect_memory_e820(void) { int count = 0; struct biosregs ireg, oreg; - struct e820_entry *desc = boot_params.e820_array; + struct e820_entry *desc = boot_params.e820_table; static struct e820_entry buf; /* static so it is zeroed */ initregs(&ireg); @@ -66,7 +66,7 @@ static int detect_memory_e820(void) *desc++ = buf; count++; - } while (ireg.ebx && count < ARRAY_SIZE(boot_params.e820_array)); + } while (ireg.ebx && count < ARRAY_SIZE(boot_params.e820_table)); return boot_params.e820_entries = count; } diff --git a/arch/x86/include/asm/e820/api.h b/arch/x86/include/asm/e820/api.h index 0156532dd65a..91a5c346f765 100644 --- a/arch/x86/include/asm/e820/api.h +++ b/arch/x86/include/asm/e820/api.h @@ -4,8 +4,8 @@ #include /* see comment in arch/x86/kernel/e820.c */ -extern struct e820_array *e820_array; -extern struct e820_array *e820_array_saved; +extern struct e820_table *e820_table; +extern struct e820_table *e820_table_saved; extern unsigned long pci_mem_start; @@ -13,7 +13,7 @@ extern int e820_any_mapped(u64 start, u64 end, unsigned type); extern int e820_all_mapped(u64 start, u64 end, unsigned type); extern void e820_add_region(u64 start, u64 size, int type); extern void e820_print_map(char *who); -extern int sanitize_e820_array(struct e820_entry *biosmap, int max_nr_map, u32 *pnr_map); +extern int sanitize_e820_table(struct e820_entry *biosmap, int max_nr_map, u32 *pnr_map); extern u64 e820_update_range(u64 start, u64 size, unsigned old_type, unsigned new_type); extern u64 e820_remove_range(u64 start, u64 size, unsigned old_type, int checktype); extern void update_e820(void); diff --git a/arch/x86/include/asm/e820/types.h b/arch/x86/include/asm/e820/types.h index e3171867e126..ae2c4e9db0d4 100644 --- a/arch/x86/include/asm/e820/types.h +++ b/arch/x86/include/asm/e820/types.h @@ -21,7 +21,7 @@ * * This allows for bootstrap/firmware quirks such as possible duplicate * E820 entries that might need room in the same arrays, prior to the - * call to sanitize_e820_array() to remove duplicates. The allowance + * call to sanitize_e820_table() to remove duplicates. The allowance * of three memory map entries per node is "enough" entries for * the initial hardware platform motivating this mechanism to make * use of additional EFI map entries. Future platforms may want @@ -68,7 +68,7 @@ /* * The whole array of E820 entries: */ -struct e820_array { +struct e820_table { __u32 nr_map; struct e820_entry map[E820_X_MAX]; }; diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h index 702f1c6d804e..5f41518f7159 100644 --- a/arch/x86/include/uapi/asm/bootparam.h +++ b/arch/x86/include/uapi/asm/bootparam.h @@ -152,7 +152,7 @@ struct boot_params { struct setup_header hdr; /* setup header */ /* 0x1f1 */ __u8 _pad7[0x290-0x1f1-sizeof(struct setup_header)]; __u32 edd_mbr_sig_buffer[EDD_MBR_SIG_MAX]; /* 0x290 */ - struct e820_entry e820_array[E820MAX]; /* 0x2d0 */ + struct e820_entry e820_table[E820MAX]; /* 0x2d0 */ __u8 _pad8[48]; /* 0xcd0 */ struct edd_info eddbuf[EDDMAXNR]; /* 0xd00 */ __u8 _pad9[276]; /* 0xeec */ diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c index 036d9140384d..11f7eb1e2506 100644 --- a/arch/x86/kernel/crash.c +++ b/arch/x86/kernel/crash.c @@ -512,7 +512,7 @@ static int add_e820_entry(struct boot_params *params, struct e820_entry *entry) if (nr_e820_entries >= E820MAX) return 1; - memcpy(¶ms->e820_array[nr_e820_entries], entry, + memcpy(¶ms->e820_table[nr_e820_entries], entry, sizeof(struct e820_entry)); params->e820_entries++; return 0; diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 49d47d6b1afe..ffaf94357d15 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -2,7 +2,7 @@ * Handle the memory map. * The functions here do the job until bootmem takes over. * - * Getting sanitize_e820_array() in sync with i386 version by applying change: + * Getting sanitize_e820_table() in sync with i386 version by applying change: * - Provisions for empty E820 memory regions (reported by certain BIOSes). * Alex Achenbach , December 2002. * Venkatesh Pallipadi @@ -31,7 +31,7 @@ * and that is also registered with modifications in the kernel resource tree * with the iomem_resource as parent. * - * The e820_array_saved is directly saved after the BIOS-provided memory map is + * The e820_table_saved is directly saved after the BIOS-provided memory map is * copied. It doesn't get modified afterwards. It's registered for the * /sys/firmware/memmap interface. * @@ -40,10 +40,10 @@ * user can e.g. boot the original kernel with mem=1G while still booting the * next kernel with full memory. */ -static struct e820_array e820_array_init __initdata; -static struct e820_array initial_e820_array_saved __initdata; -struct e820_array *e820_array __refdata = &e820_array_init; -struct e820_array *e820_array_saved __refdata = &initial_e820_array_saved; +static struct e820_table e820_table_init __initdata; +static struct e820_table initial_e820_table_saved __initdata; +struct e820_table *e820_table __refdata = &e820_table_init; +struct e820_table *e820_table_saved __refdata = &initial_e820_table_saved; /* For PCI or other memory-mapped resources */ unsigned long pci_mem_start = 0xaeedbabe; @@ -60,8 +60,8 @@ e820_any_mapped(u64 start, u64 end, unsigned type) { int i; - for (i = 0; i < e820_array->nr_map; i++) { - struct e820_entry *ei = &e820_array->map[i]; + for (i = 0; i < e820_table->nr_map; i++) { + struct e820_entry *ei = &e820_table->map[i]; if (type && ei->type != type) continue; @@ -83,8 +83,8 @@ int __init e820_all_mapped(u64 start, u64 end, unsigned type) { int i; - for (i = 0; i < e820_array->nr_map; i++) { - struct e820_entry *ei = &e820_array->map[i]; + for (i = 0; i < e820_table->nr_map; i++) { + struct e820_entry *ei = &e820_table->map[i]; if (type && ei->type != type) continue; @@ -110,7 +110,7 @@ int __init e820_all_mapped(u64 start, u64 end, unsigned type) /* * Add a memory region to the kernel e820 map. */ -static void __init __e820_add_region(struct e820_array *e820x, u64 start, u64 size, +static void __init __e820_add_region(struct e820_table *e820x, u64 start, u64 size, int type) { int x = e820x->nr_map; @@ -130,7 +130,7 @@ static void __init __e820_add_region(struct e820_array *e820x, u64 start, u64 si void __init e820_add_region(u64 start, u64 size, int type) { - __e820_add_region(e820_array, start, size, type); + __e820_add_region(e820_table, start, size, type); } static void __init e820_print_type(u32 type) @@ -166,12 +166,12 @@ void __init e820_print_map(char *who) { int i; - for (i = 0; i < e820_array->nr_map; i++) { + for (i = 0; i < e820_table->nr_map; i++) { printk(KERN_INFO "%s: [mem %#018Lx-%#018Lx] ", who, - (unsigned long long) e820_array->map[i].addr, + (unsigned long long) e820_table->map[i].addr, (unsigned long long) - (e820_array->map[i].addr + e820_array->map[i].size - 1)); - e820_print_type(e820_array->map[i].type); + (e820_table->map[i].addr + e820_table->map[i].size - 1)); + e820_print_type(e820_table->map[i].type); printk(KERN_CONT "\n"); } } @@ -195,7 +195,7 @@ void __init e820_print_map(char *who) * sanitizing succeeds the *pnr_map will be updated with the new * number of valid entries (something no more than max_nr_map). * - * The return value from sanitize_e820_array() is zero if it + * The return value from sanitize_e820_table() is zero if it * successfully 'sanitized' the map entries passed in, and is -1 * if it did nothing, which can happen if either of (1) it was * only passed one map entry, or (2) any of the input map entries @@ -259,7 +259,7 @@ static int __init cpcompare(const void *a, const void *b) return (ap->addr != ap->pbios->addr) - (bp->addr != bp->pbios->addr); } -int __init sanitize_e820_array(struct e820_entry *biosmap, int max_nr_map, +int __init sanitize_e820_table(struct e820_entry *biosmap, int max_nr_map, u32 *pnr_map) { static struct change_member change_point_list[2*E820_X_MAX] __initdata; @@ -385,7 +385,7 @@ int __init sanitize_e820_array(struct e820_entry *biosmap, int max_nr_map, return 0; } -static int __init __append_e820_array(struct e820_entry *biosmap, int nr_map) +static int __init __append_e820_table(struct e820_entry *biosmap, int nr_map) { while (nr_map) { u64 start = biosmap->addr; @@ -414,16 +414,16 @@ static int __init __append_e820_array(struct e820_entry *biosmap, int nr_map) * will have given us a memory map that we can use to properly * set up memory. If we aren't, we'll fake a memory map. */ -static int __init append_e820_array(struct e820_entry *biosmap, int nr_map) +static int __init append_e820_table(struct e820_entry *biosmap, int nr_map) { /* Only one memory region (or negative)? Ignore it */ if (nr_map < 2) return -1; - return __append_e820_array(biosmap, nr_map); + return __append_e820_table(biosmap, nr_map); } -static u64 __init __e820_update_range(struct e820_array *e820x, u64 start, +static u64 __init __e820_update_range(struct e820_table *e820x, u64 start, u64 size, unsigned old_type, unsigned new_type) { @@ -495,13 +495,13 @@ static u64 __init __e820_update_range(struct e820_array *e820x, u64 start, u64 __init e820_update_range(u64 start, u64 size, unsigned old_type, unsigned new_type) { - return __e820_update_range(e820_array, start, size, old_type, new_type); + return __e820_update_range(e820_table, start, size, old_type, new_type); } static u64 __init e820_update_range_saved(u64 start, u64 size, unsigned old_type, unsigned new_type) { - return __e820_update_range(e820_array_saved, start, size, old_type, + return __e820_update_range(e820_table_saved, start, size, old_type, new_type); } @@ -523,8 +523,8 @@ u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type, e820_print_type(old_type); printk(KERN_CONT "\n"); - for (i = 0; i < e820_array->nr_map; i++) { - struct e820_entry *ei = &e820_array->map[i]; + for (i = 0; i < e820_table->nr_map; i++) { + struct e820_entry *ei = &e820_table->map[i]; u64 final_start, final_end; u64 ei_end; @@ -568,15 +568,15 @@ u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type, void __init update_e820(void) { - if (sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map)) + if (sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map)) return; printk(KERN_INFO "e820: modified physical RAM map:\n"); e820_print_map("modified"); } -static void __init update_e820_array_saved(void) +static void __init update_e820_table_saved(void) { - sanitize_e820_array(e820_array_saved->map, ARRAY_SIZE(e820_array_saved->map), - &e820_array_saved->nr_map); + sanitize_e820_table(e820_table_saved->map, ARRAY_SIZE(e820_table_saved->map), + &e820_table_saved->nr_map); } #define MAX_GAP_END 0x100000000ull /* @@ -586,12 +586,12 @@ static int __init e820_search_gap(unsigned long *gapstart, unsigned long *gapsize) { unsigned long long last = MAX_GAP_END; - int i = e820_array->nr_map; + int i = e820_table->nr_map; int found = 0; while (--i >= 0) { - unsigned long long start = e820_array->map[i].addr; - unsigned long long end = start + e820_array->map[i].size; + unsigned long long start = e820_table->map[i].addr; + unsigned long long end = start + e820_table->map[i].size; /* * Since "last" is at most 4GB, we know we'll @@ -650,7 +650,7 @@ __init void e820_setup_gap(void) /* * Called late during init, in free_initmem(). * - * Initial e820 and e820_array_saved are largish __initdata arrays. + * Initial e820 and e820_table_saved are largish __initdata arrays. * Copy them to (usually much smaller) dynamically allocated area. * This is done after all tweaks we ever do to them: * all functions which modify them are __init functions, @@ -658,26 +658,26 @@ __init void e820_setup_gap(void) */ __init void e820_reallocate_tables(void) { - struct e820_array *n; + struct e820_table *n; int size; - size = offsetof(struct e820_array, map) + sizeof(struct e820_entry) * e820_array->nr_map; + size = offsetof(struct e820_table, map) + sizeof(struct e820_entry) * e820_table->nr_map; n = kmalloc(size, GFP_KERNEL); BUG_ON(!n); - memcpy(n, e820_array, size); - e820_array = n; + memcpy(n, e820_table, size); + e820_table = n; - size = offsetof(struct e820_array, map) + sizeof(struct e820_entry) * e820_array_saved->nr_map; + size = offsetof(struct e820_table, map) + sizeof(struct e820_entry) * e820_table_saved->nr_map; n = kmalloc(size, GFP_KERNEL); BUG_ON(!n); - memcpy(n, e820_array_saved, size); - e820_array_saved = n; + memcpy(n, e820_table_saved, size); + e820_table_saved = n; } /** * Because of the size limitation of struct boot_params, only first * 128 E820 memory entries are passed to kernel via - * boot_params.e820_array, others are passed via SETUP_E820_EXT node of + * boot_params.e820_table, others are passed via SETUP_E820_EXT node of * linked list of struct setup_data, which is parsed here. */ void __init parse_e820_ext(u64 phys_addr, u32 data_len) @@ -689,8 +689,8 @@ void __init parse_e820_ext(u64 phys_addr, u32 data_len) sdata = early_memremap(phys_addr, data_len); entries = sdata->len / sizeof(struct e820_entry); extmap = (struct e820_entry *)(sdata->data); - __append_e820_array(extmap, entries); - sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); + __append_e820_table(extmap, entries); + sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); early_memunmap(sdata, data_len); printk(KERN_INFO "e820: extended physical RAM map:\n"); e820_print_map("extended"); @@ -709,8 +709,8 @@ void __init e820_mark_nosave_regions(unsigned long limit_pfn) int i; unsigned long pfn = 0; - for (i = 0; i < e820_array->nr_map; i++) { - struct e820_entry *ei = &e820_array->map[i]; + for (i = 0; i < e820_table->nr_map; i++) { + struct e820_entry *ei = &e820_table->map[i]; if (pfn < PFN_UP(ei->addr)) register_nosave_region(pfn, PFN_UP(ei->addr)); @@ -734,8 +734,8 @@ static int __init e820_mark_nvs_memory(void) { int i; - for (i = 0; i < e820_array->nr_map; i++) { - struct e820_entry *ei = &e820_array->map[i]; + for (i = 0; i < e820_table->nr_map; i++) { + struct e820_entry *ei = &e820_table->map[i]; if (ei->type == E820_NVS) acpi_nvs_register(ei->addr, ei->size); @@ -747,7 +747,7 @@ core_initcall(e820_mark_nvs_memory); #endif /* - * pre allocated 4k and reserved it in memblock and e820_array_saved + * pre allocated 4k and reserved it in memblock and e820_table_saved */ u64 __init early_reserve_e820(u64 size, u64 align) { @@ -756,8 +756,8 @@ u64 __init early_reserve_e820(u64 size, u64 align) addr = __memblock_alloc_base(size, align, MEMBLOCK_ALLOC_ACCESSIBLE); if (addr) { e820_update_range_saved(addr, size, E820_RAM, E820_RESERVED); - printk(KERN_INFO "e820: update e820_array_saved for early_reserve_e820\n"); - update_e820_array_saved(); + printk(KERN_INFO "e820: update e820_table_saved for early_reserve_e820\n"); + update_e820_table_saved(); } return addr; @@ -782,8 +782,8 @@ static unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type) unsigned long last_pfn = 0; unsigned long max_arch_pfn = MAX_ARCH_PFN; - for (i = 0; i < e820_array->nr_map; i++) { - struct e820_entry *ei = &e820_array->map[i]; + for (i = 0; i < e820_table->nr_map; i++) { + struct e820_entry *ei = &e820_table->map[i]; unsigned long start_pfn; unsigned long end_pfn; @@ -874,7 +874,7 @@ static int __init parse_memmap_one(char *p) */ saved_max_pfn = e820_end_of_ram_pfn(); #endif - e820_array->nr_map = 0; + e820_table->nr_map = 0; userdef = 1; return 0; } @@ -921,8 +921,8 @@ early_param("memmap", parse_memmap_opt); void __init finish_e820_parsing(void) { if (userdef) { - if (sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), - &e820_array->nr_map) < 0) + if (sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), + &e820_table->nr_map) < 0) early_panic("Invalid user supplied memory map"); printk(KERN_INFO "e820: user-defined physical RAM map:\n"); @@ -1009,35 +1009,35 @@ void __init e820_reserve_resources(void) struct resource *res; u64 end; - res = alloc_bootmem(sizeof(struct resource) * e820_array->nr_map); + res = alloc_bootmem(sizeof(struct resource) * e820_table->nr_map); e820_res = res; - for (i = 0; i < e820_array->nr_map; i++) { - end = e820_array->map[i].addr + e820_array->map[i].size - 1; + for (i = 0; i < e820_table->nr_map; i++) { + end = e820_table->map[i].addr + e820_table->map[i].size - 1; if (end != (resource_size_t)end) { res++; continue; } - res->name = e820_type_to_string(e820_array->map[i].type); - res->start = e820_array->map[i].addr; + res->name = e820_type_to_string(e820_table->map[i].type); + res->start = e820_table->map[i].addr; res->end = end; - res->flags = e820_type_to_iomem_type(e820_array->map[i].type); - res->desc = e820_type_to_iores_desc(e820_array->map[i].type); + res->flags = e820_type_to_iomem_type(e820_table->map[i].type); + res->desc = e820_type_to_iores_desc(e820_table->map[i].type); /* * don't register the region that could be conflicted with * pci device BAR resource and insert them later in * pcibios_resource_survey() */ - if (do_mark_busy(e820_array->map[i].type, res)) { + if (do_mark_busy(e820_table->map[i].type, res)) { res->flags |= IORESOURCE_BUSY; insert_resource(&iomem_resource, res); } res++; } - for (i = 0; i < e820_array_saved->nr_map; i++) { - struct e820_entry *entry = &e820_array_saved->map[i]; + for (i = 0; i < e820_table_saved->nr_map; i++) { + struct e820_entry *entry = &e820_table_saved->map[i]; firmware_map_add_early(entry->addr, entry->addr + entry->size, e820_type_to_string(entry->type)); @@ -1069,7 +1069,7 @@ void __init e820_reserve_resources_late(void) struct resource *res; res = e820_res; - for (i = 0; i < e820_array->nr_map; i++) { + for (i = 0; i < e820_table->nr_map; i++) { if (!res->parent && res->end) insert_resource_expand_to_fit(&iomem_resource, res); res++; @@ -1079,8 +1079,8 @@ void __init e820_reserve_resources_late(void) * Try to bump up RAM regions to reasonable boundaries to * avoid stolen RAM: */ - for (i = 0; i < e820_array->nr_map; i++) { - struct e820_entry *entry = &e820_array->map[i]; + for (i = 0; i < e820_table->nr_map; i++) { + struct e820_entry *entry = &e820_table->map[i]; u64 start, end; if (entry->type != E820_RAM) @@ -1110,11 +1110,11 @@ char *__init default_machine_specific_memory_setup(void) * the next section from 1mb->appropriate_mem_k */ new_nr = boot_params.e820_entries; - sanitize_e820_array(boot_params.e820_array, - ARRAY_SIZE(boot_params.e820_array), + sanitize_e820_table(boot_params.e820_table, + ARRAY_SIZE(boot_params.e820_table), &new_nr); boot_params.e820_entries = new_nr; - if (append_e820_array(boot_params.e820_array, boot_params.e820_entries) + if (append_e820_table(boot_params.e820_table, boot_params.e820_entries) < 0) { u64 mem_size; @@ -1128,7 +1128,7 @@ char *__init default_machine_specific_memory_setup(void) who = "BIOS-e801"; } - e820_array->nr_map = 0; + e820_table->nr_map = 0; e820_add_region(0, LOWMEMSIZE(), E820_RAM); e820_add_region(HIGH_MEMORY, mem_size << 10, E820_RAM); } @@ -1142,7 +1142,7 @@ void __init setup_memory_map(void) char *who; who = x86_init.resources.memory_setup(); - memcpy(e820_array_saved, e820_array, sizeof(struct e820_array)); + memcpy(e820_table_saved, e820_table, sizeof(struct e820_table)); printk(KERN_INFO "e820: BIOS-provided physical RAM map:\n"); e820_print_map(who); } @@ -1159,8 +1159,8 @@ void __init memblock_x86_fill(void) */ memblock_allow_resize(); - for (i = 0; i < e820_array->nr_map; i++) { - struct e820_entry *ei = &e820_array->map[i]; + for (i = 0; i < e820_table->nr_map; i++) { + struct e820_entry *ei = &e820_table->map[i]; end = ei->addr + ei->size; if (end != (resource_size_t)end) diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c index 31d755534c36..a6cdf9b9c7a9 100644 --- a/arch/x86/kernel/early-quirks.c +++ b/arch/x86/kernel/early-quirks.c @@ -547,7 +547,7 @@ intel_graphics_stolen(int num, int slot, int func, /* Mark this space as reserved */ e820_add_region(base, size, E820_RESERVED); - sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); + sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); } static void __init intel_graphics_quirks(int num, int slot, int func) diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c index 6bedcb9bad1e..39d340ac50eb 100644 --- a/arch/x86/kernel/kexec-bzimage64.c +++ b/arch/x86/kernel/kexec-bzimage64.c @@ -100,14 +100,14 @@ static int setup_e820_entries(struct boot_params *params) { unsigned int nr_e820_entries; - nr_e820_entries = e820_array_saved->nr_map; + nr_e820_entries = e820_table_saved->nr_map; /* TODO: Pass entries more than E820MAX in bootparams setup data */ if (nr_e820_entries > E820MAX) nr_e820_entries = E820MAX; params->e820_entries = nr_e820_entries; - memcpy(¶ms->e820_array, &e820_array_saved->map, + memcpy(¶ms->e820_table, &e820_table_saved->map, nr_e820_entries * sizeof(struct e820_entry)); return 0; @@ -233,10 +233,10 @@ setup_boot_parameters(struct kimage *image, struct boot_params *params, nr_e820_entries = params->e820_entries; for (i = 0; i < nr_e820_entries; i++) { - if (params->e820_array[i].type != E820_RAM) + if (params->e820_table[i].type != E820_RAM) continue; - start = params->e820_array[i].addr; - end = params->e820_array[i].addr + params->e820_array[i].size - 1; + start = params->e820_table[i].addr; + end = params->e820_table[i].addr + params->e820_table[i].size - 1; if ((start <= 0x100000) && end > 0x100000) { mem_k = (end >> 10) - (0x100000 >> 10); diff --git a/arch/x86/kernel/resource.c b/arch/x86/kernel/resource.c index aeec503e0a6d..17b494d4bb86 100644 --- a/arch/x86/kernel/resource.c +++ b/arch/x86/kernel/resource.c @@ -27,8 +27,8 @@ static void remove_e820_regions(struct resource *avail) int i; struct e820_entry *entry; - for (i = 0; i < e820_array->nr_map; i++) { - entry = &e820_array->map[i]; + for (i = 0; i < e820_table->nr_map; i++) { + entry = &e820_table->map[i]; resource_clip(avail, entry->addr, entry->addr + entry->size - 1); diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index a91db2edee9e..a3c1d39116b7 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -458,8 +458,8 @@ static void __init e820_reserve_setup_data(void) early_memunmap(data, sizeof(*data)); } - sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); - memcpy(e820_array_saved, e820_array, sizeof(struct e820_array)); + sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); + memcpy(e820_table_saved, e820_table, sizeof(struct e820_table)); printk(KERN_INFO "extended physical RAM map:\n"); e820_print_map("reserve setup_data"); } @@ -763,7 +763,7 @@ static void __init trim_bios_range(void) */ e820_remove_range(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_RAM, 1); - sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); + sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); } /* called before trim_bios_range() to spare extra sanitize */ @@ -1026,7 +1026,7 @@ void __init setup_arch(char **cmdline_p) early_dump_pci_devices(); #endif - /* update the e820_array_saved too */ + /* update the e820_table_saved too */ e820_reserve_setup_data(); finish_e820_parsing(); @@ -1056,7 +1056,7 @@ void __init setup_arch(char **cmdline_p) if (ppro_with_ram_bug()) { e820_update_range(0x70000000ULL, 0x40000ULL, E820_RAM, E820_RESERVED); - sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); + sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); printk(KERN_INFO "fixed physical RAM map:\n"); e820_print_map("bad_ppro"); } diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c index 705f1207181a..825822688aa5 100644 --- a/arch/x86/kernel/tboot.c +++ b/arch/x86/kernel/tboot.c @@ -188,12 +188,12 @@ static int tboot_setup_sleep(void) tboot->num_mac_regions = 0; - for (i = 0; i < e820_array->nr_map; i++) { - if ((e820_array->map[i].type != E820_RAM) - && (e820_array->map[i].type != E820_RESERVED_KERN)) + for (i = 0; i < e820_table->nr_map; i++) { + if ((e820_table->map[i].type != E820_RAM) + && (e820_table->map[i].type != E820_RESERVED_KERN)) continue; - add_mac_region(e820_array->map[i].addr, e820_array->map[i].size); + add_mac_region(e820_table->map[i].addr, e820_table->map[i].size); } tboot->acpi_sinfo.kernel_s3_resume_vector = diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c index 09226a33e418..fc42e9604562 100644 --- a/arch/x86/lguest/boot.c +++ b/arch/x86/lguest/boot.c @@ -1178,9 +1178,9 @@ static __init char *lguest_memory_setup(void) * The Linux bootloader header contains an "e820" memory map: the * Launcher populated the first entry with our memory limit. */ - e820_add_region(boot_params.e820_array[0].addr, - boot_params.e820_array[0].size, - boot_params.e820_array[0].type); + e820_add_region(boot_params.e820_table[0].addr, + boot_params.e820_table[0].size, + boot_params.e820_table[0].type); /* This string is for the boot messages. */ return "LGUEST"; diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c index 2543a11c9df8..9e055f6859e5 100644 --- a/arch/x86/platform/efi/efi.c +++ b/arch/x86/platform/efi/efi.c @@ -167,7 +167,7 @@ static void __init do_add_efi_memmap(void) } e820_add_region(start, size, e820_type); } - sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); + sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); } int __init efi_memblock_x86_reserve_range(void) diff --git a/arch/x86/power/hibernate_64.c b/arch/x86/power/hibernate_64.c index c1a245e64ed1..8fe5be0e90b2 100644 --- a/arch/x86/power/hibernate_64.c +++ b/arch/x86/power/hibernate_64.c @@ -201,7 +201,7 @@ struct restore_data_record { * @map: the e820 map to be calculated * @buf: the md5 result to be stored to */ -static int get_e820_md5(struct e820_array *map, void *buf) +static int get_e820_md5(struct e820_table *map, void *buf) { struct scatterlist sg; struct crypto_ahash *tfm; @@ -214,7 +214,7 @@ static int get_e820_md5(struct e820_array *map, void *buf) { AHASH_REQUEST_ON_STACK(req, tfm); - size = offsetof(struct e820_array, map) + size = offsetof(struct e820_table, map) + sizeof(struct e820_entry) * map->nr_map; ahash_request_set_tfm(req, tfm); sg_init_one(&sg, (u8 *)map, size); @@ -232,7 +232,7 @@ static int get_e820_md5(struct e820_array *map, void *buf) static void hibernation_e820_save(void *buf) { - get_e820_md5(e820_array_saved, buf); + get_e820_md5(e820_table_saved, buf); } static bool hibernation_e820_mismatch(void *buf) @@ -245,7 +245,7 @@ static bool hibernation_e820_mismatch(void *buf) if (!memcmp(result, buf, MD5_DIGEST_SIZE)) return false; - ret = get_e820_md5(e820_array_saved, result); + ret = get_e820_md5(e820_table_saved, result); if (ret) return true; diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index 3cc90e902064..f98713e5a705 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c @@ -41,8 +41,8 @@ struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata; unsigned long xen_released_pages; /* E820 map used during setting up memory. */ -static struct e820_entry xen_e820_array[E820_X_MAX] __initdata; -static u32 xen_e820_array_entries __initdata; +static struct e820_entry xen_e820_table[E820_X_MAX] __initdata; +static u32 xen_e820_table_entries __initdata; /* * Buffer used to remap identity mapped pages. We only need the virtual space. @@ -198,11 +198,11 @@ void __init xen_inv_extra_mem(void) */ static unsigned long __init xen_find_pfn_range(unsigned long *min_pfn) { - const struct e820_entry *entry = xen_e820_array; + const struct e820_entry *entry = xen_e820_table; unsigned int i; unsigned long done = 0; - for (i = 0; i < xen_e820_array_entries; i++, entry++) { + for (i = 0; i < xen_e820_table_entries; i++, entry++) { unsigned long s_pfn; unsigned long e_pfn; @@ -457,7 +457,7 @@ static unsigned long __init xen_foreach_remap_area(unsigned long nr_pages, { phys_addr_t start = 0; unsigned long ret_val = 0; - const struct e820_entry *entry = xen_e820_array; + const struct e820_entry *entry = xen_e820_table; int i; /* @@ -471,9 +471,9 @@ static unsigned long __init xen_foreach_remap_area(unsigned long nr_pages, * example) the DMI tables in a reserved region that begins on * a non-page boundary. */ - for (i = 0; i < xen_e820_array_entries; i++, entry++) { + for (i = 0; i < xen_e820_table_entries; i++, entry++) { phys_addr_t end = entry->addr + entry->size; - if (entry->type == E820_RAM || i == xen_e820_array_entries - 1) { + if (entry->type == E820_RAM || i == xen_e820_table_entries - 1) { unsigned long start_pfn = PFN_DOWN(start); unsigned long end_pfn = PFN_UP(end); @@ -601,10 +601,10 @@ static void __init xen_align_and_add_e820_region(phys_addr_t start, static void __init xen_ignore_unusable(void) { - struct e820_entry *entry = xen_e820_array; + struct e820_entry *entry = xen_e820_table; unsigned int i; - for (i = 0; i < xen_e820_array_entries; i++, entry++) { + for (i = 0; i < xen_e820_table_entries; i++, entry++) { if (entry->type == E820_UNUSABLE) entry->type = E820_RAM; } @@ -620,9 +620,9 @@ bool __init xen_is_e820_reserved(phys_addr_t start, phys_addr_t size) return false; end = start + size; - entry = xen_e820_array; + entry = xen_e820_table; - for (mapcnt = 0; mapcnt < xen_e820_array_entries; mapcnt++) { + for (mapcnt = 0; mapcnt < xen_e820_table_entries; mapcnt++) { if (entry->type == E820_RAM && entry->addr <= start && (entry->addr + entry->size) >= end) return false; @@ -645,9 +645,9 @@ phys_addr_t __init xen_find_free_area(phys_addr_t size) { unsigned mapcnt; phys_addr_t addr, start; - struct e820_entry *entry = xen_e820_array; + struct e820_entry *entry = xen_e820_table; - for (mapcnt = 0; mapcnt < xen_e820_array_entries; mapcnt++, entry++) { + for (mapcnt = 0; mapcnt < xen_e820_table_entries; mapcnt++, entry++) { if (entry->type != E820_RAM || entry->size < size) continue; start = entry->addr; @@ -750,8 +750,8 @@ char * __init xen_memory_setup(void) max_pfn = min(max_pfn, xen_start_info->nr_pages); mem_end = PFN_PHYS(max_pfn); - memmap.nr_entries = ARRAY_SIZE(xen_e820_array); - set_xen_guest_handle(memmap.buffer, xen_e820_array); + memmap.nr_entries = ARRAY_SIZE(xen_e820_table); + set_xen_guest_handle(memmap.buffer, xen_e820_table); op = xen_initial_domain() ? XENMEM_machine_memory_map : @@ -760,16 +760,16 @@ char * __init xen_memory_setup(void) if (rc == -ENOSYS) { BUG_ON(xen_initial_domain()); memmap.nr_entries = 1; - xen_e820_array[0].addr = 0ULL; - xen_e820_array[0].size = mem_end; + xen_e820_table[0].addr = 0ULL; + xen_e820_table[0].size = mem_end; /* 8MB slack (to balance backend allocations). */ - xen_e820_array[0].size += 8ULL << 20; - xen_e820_array[0].type = E820_RAM; + xen_e820_table[0].size += 8ULL << 20; + xen_e820_table[0].type = E820_RAM; rc = 0; } BUG_ON(rc); BUG_ON(memmap.nr_entries == 0); - xen_e820_array_entries = memmap.nr_entries; + xen_e820_table_entries = memmap.nr_entries; /* * Xen won't allow a 1:1 mapping to be created to UNUSABLE @@ -783,8 +783,8 @@ char * __init xen_memory_setup(void) xen_ignore_unusable(); /* Make sure the Xen-supplied memory map is well-ordered. */ - sanitize_e820_array(xen_e820_array, ARRAY_SIZE(xen_e820_array), - &xen_e820_array_entries); + sanitize_e820_table(xen_e820_table, ARRAY_SIZE(xen_e820_table), + &xen_e820_table_entries); max_pages = xen_get_max_pages(); @@ -811,13 +811,13 @@ char * __init xen_memory_setup(void) extra_pages = min3(EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)), extra_pages, max_pages - max_pfn); i = 0; - addr = xen_e820_array[0].addr; - size = xen_e820_array[0].size; - while (i < xen_e820_array_entries) { + addr = xen_e820_table[0].addr; + size = xen_e820_table[0].size; + while (i < xen_e820_table_entries) { bool discard = false; chunk_size = size; - type = xen_e820_array[i].type; + type = xen_e820_table[i].type; if (type == E820_RAM) { if (addr < mem_end) { @@ -840,9 +840,9 @@ char * __init xen_memory_setup(void) size -= chunk_size; if (size == 0) { i++; - if (i < xen_e820_array_entries) { - addr = xen_e820_array[i].addr; - size = xen_e820_array[i].size; + if (i < xen_e820_table_entries) { + addr = xen_e820_table[i].addr; + size = xen_e820_table[i].size; } } } @@ -861,7 +861,7 @@ char * __init xen_memory_setup(void) e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS, E820_RESERVED); - sanitize_e820_array(e820_array->map, ARRAY_SIZE(e820_array->map), &e820_array->nr_map); + sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); /* * Check whether the kernel itself conflicts with the target E820 map. @@ -923,21 +923,21 @@ char * __init xen_auto_xlated_memory_setup(void) int i; int rc; - memmap.nr_entries = ARRAY_SIZE(xen_e820_array); - set_xen_guest_handle(memmap.buffer, xen_e820_array); + memmap.nr_entries = ARRAY_SIZE(xen_e820_table); + set_xen_guest_handle(memmap.buffer, xen_e820_table); rc = HYPERVISOR_memory_op(XENMEM_memory_map, &memmap); if (rc < 0) panic("No memory map (%d)\n", rc); - xen_e820_array_entries = memmap.nr_entries; + xen_e820_table_entries = memmap.nr_entries; - sanitize_e820_array(xen_e820_array, ARRAY_SIZE(xen_e820_array), - &xen_e820_array_entries); + sanitize_e820_table(xen_e820_table, ARRAY_SIZE(xen_e820_table), + &xen_e820_table_entries); - for (i = 0; i < xen_e820_array_entries; i++) - e820_add_region(xen_e820_array[i].addr, xen_e820_array[i].size, - xen_e820_array[i].type); + for (i = 0; i < xen_e820_table_entries; i++) + e820_add_region(xen_e820_table[i].addr, xen_e820_table[i].size, + xen_e820_table[i].type); /* Remove p2m info, it is not needed. */ xen_start_info->mfn_list = 0; diff --git a/tools/lguest/lguest.c b/tools/lguest/lguest.c index 92a1fe3c07eb..3819e23a173e 100644 --- a/tools/lguest/lguest.c +++ b/tools/lguest/lguest.c @@ -3339,7 +3339,7 @@ int main(int argc, char *argv[]) * simple, single region. */ boot->e820_entries = 1; - boot->e820_array[0] = ((struct e820_entry) { 0, mem, E820_RAM }); + boot->e820_table[0] = ((struct e820_entry) { 0, mem, E820_RAM }); /* * The boot header contains a command line pointer: we put the command * line after the boot header. -- cgit v1.2.3-59-g8ed1b From bf495573fae84451a8a26215fafb5b62e387ddaf Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 27 Jan 2017 14:06:21 +0100 Subject: x86/boot/e820: Harmonize the 'struct e820_table' fields So the e820_table->map and e820_table->nr_map names are a bit confusing, because it's not clear what a 'map' really means (it could be a bitmap, or some other data structure), nor is it clear what nr_map means (is it a current index, or some other count). Rename the fields from: e820_table->map => e820_table->entries e820_table->nr_map => e820_table->nr_entries which makes it abundantly clear that these are entries of the table, and that the size of the table is ->nr_entries. Propagate the changes to all affected files. Where necessary, adjust local variable names to better reflect the new field names. No change in functionality. Cc: Alex Thorlton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dan Williams Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Huang, Ying Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Linus Torvalds Cc: Paul Jackson Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Tejun Heo Cc: Thomas Gleixner Cc: Wei Yang Cc: Yinghai Lu Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar --- arch/x86/include/asm/e820/types.h | 4 +- arch/x86/kernel/e820.c | 114 +++++++++++++++++++------------------- arch/x86/kernel/early-quirks.c | 2 +- arch/x86/kernel/kexec-bzimage64.c | 5 +- arch/x86/kernel/resource.c | 4 +- arch/x86/kernel/setup.c | 6 +- arch/x86/kernel/tboot.c | 8 +-- arch/x86/platform/efi/efi.c | 2 +- arch/x86/power/hibernate_64.c | 11 ++-- arch/x86/xen/setup.c | 2 +- 10 files changed, 77 insertions(+), 81 deletions(-) (limited to 'arch/x86/power') diff --git a/arch/x86/include/asm/e820/types.h b/arch/x86/include/asm/e820/types.h index ae2c4e9db0d4..e9d811afc123 100644 --- a/arch/x86/include/asm/e820/types.h +++ b/arch/x86/include/asm/e820/types.h @@ -69,8 +69,8 @@ * The whole array of E820 entries: */ struct e820_table { - __u32 nr_map; - struct e820_entry map[E820_X_MAX]; + __u32 nr_entries; + struct e820_entry entries[E820_X_MAX]; }; /* diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index ffaf94357d15..6d73ad46ab35 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -60,8 +60,8 @@ e820_any_mapped(u64 start, u64 end, unsigned type) { int i; - for (i = 0; i < e820_table->nr_map; i++) { - struct e820_entry *ei = &e820_table->map[i]; + for (i = 0; i < e820_table->nr_entries; i++) { + struct e820_entry *ei = &e820_table->entries[i]; if (type && ei->type != type) continue; @@ -83,8 +83,8 @@ int __init e820_all_mapped(u64 start, u64 end, unsigned type) { int i; - for (i = 0; i < e820_table->nr_map; i++) { - struct e820_entry *ei = &e820_table->map[i]; + for (i = 0; i < e820_table->nr_entries; i++) { + struct e820_entry *ei = &e820_table->entries[i]; if (type && ei->type != type) continue; @@ -110,22 +110,21 @@ int __init e820_all_mapped(u64 start, u64 end, unsigned type) /* * Add a memory region to the kernel e820 map. */ -static void __init __e820_add_region(struct e820_table *e820x, u64 start, u64 size, - int type) +static void __init __e820_add_region(struct e820_table *table, u64 start, u64 size, int type) { - int x = e820x->nr_map; + int x = table->nr_entries; - if (x >= ARRAY_SIZE(e820x->map)) { + if (x >= ARRAY_SIZE(table->entries)) { printk(KERN_ERR "e820: too many entries; ignoring [mem %#010llx-%#010llx]\n", (unsigned long long) start, (unsigned long long) (start + size - 1)); return; } - e820x->map[x].addr = start; - e820x->map[x].size = size; - e820x->map[x].type = type; - e820x->nr_map++; + table->entries[x].addr = start; + table->entries[x].size = size; + table->entries[x].type = type; + table->nr_entries++; } void __init e820_add_region(u64 start, u64 size, int type) @@ -166,12 +165,12 @@ void __init e820_print_map(char *who) { int i; - for (i = 0; i < e820_table->nr_map; i++) { + for (i = 0; i < e820_table->nr_entries; i++) { printk(KERN_INFO "%s: [mem %#018Lx-%#018Lx] ", who, - (unsigned long long) e820_table->map[i].addr, + (unsigned long long) e820_table->entries[i].addr, (unsigned long long) - (e820_table->map[i].addr + e820_table->map[i].size - 1)); - e820_print_type(e820_table->map[i].type); + (e820_table->entries[i].addr + e820_table->entries[i].size - 1)); + e820_print_type(e820_table->entries[i].type); printk(KERN_CONT "\n"); } } @@ -423,7 +422,7 @@ static int __init append_e820_table(struct e820_entry *biosmap, int nr_map) return __append_e820_table(biosmap, nr_map); } -static u64 __init __e820_update_range(struct e820_table *e820x, u64 start, +static u64 __init __e820_update_range(struct e820_table *table, u64 start, u64 size, unsigned old_type, unsigned new_type) { @@ -444,8 +443,8 @@ static u64 __init __e820_update_range(struct e820_table *e820x, u64 start, e820_print_type(new_type); printk(KERN_CONT "\n"); - for (i = 0; i < e820x->nr_map; i++) { - struct e820_entry *ei = &e820x->map[i]; + for (i = 0; i < table->nr_entries; i++) { + struct e820_entry *ei = &table->entries[i]; u64 final_start, final_end; u64 ei_end; @@ -462,8 +461,8 @@ static u64 __init __e820_update_range(struct e820_table *e820x, u64 start, /* new range is totally covered? */ if (ei->addr < start && ei_end > end) { - __e820_add_region(e820x, start, size, new_type); - __e820_add_region(e820x, end, ei_end - end, ei->type); + __e820_add_region(table, start, size, new_type); + __e820_add_region(table, end, ei_end - end, ei->type); ei->size = start - ei->addr; real_updated_size += size; continue; @@ -475,7 +474,7 @@ static u64 __init __e820_update_range(struct e820_table *e820x, u64 start, if (final_start >= final_end) continue; - __e820_add_region(e820x, final_start, final_end - final_start, + __e820_add_region(table, final_start, final_end - final_start, new_type); real_updated_size += final_end - final_start; @@ -523,8 +522,8 @@ u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type, e820_print_type(old_type); printk(KERN_CONT "\n"); - for (i = 0; i < e820_table->nr_map; i++) { - struct e820_entry *ei = &e820_table->map[i]; + for (i = 0; i < e820_table->nr_entries; i++) { + struct e820_entry *ei = &e820_table->entries[i]; u64 final_start, final_end; u64 ei_end; @@ -568,15 +567,14 @@ u64 __init e820_remove_range(u64 start, u64 size, unsigned old_type, void __init update_e820(void) { - if (sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map)) + if (sanitize_e820_table(e820_table->entries, ARRAY_SIZE(e820_table->entries), &e820_table->nr_entries)) return; printk(KERN_INFO "e820: modified physical RAM map:\n"); e820_print_map("modified"); } static void __init update_e820_table_saved(void) { - sanitize_e820_table(e820_table_saved->map, ARRAY_SIZE(e820_table_saved->map), - &e820_table_saved->nr_map); + sanitize_e820_table(e820_table_saved->entries, ARRAY_SIZE(e820_table_saved->entries), &e820_table_saved->nr_entries); } #define MAX_GAP_END 0x100000000ull /* @@ -586,12 +584,12 @@ static int __init e820_search_gap(unsigned long *gapstart, unsigned long *gapsize) { unsigned long long last = MAX_GAP_END; - int i = e820_table->nr_map; + int i = e820_table->nr_entries; int found = 0; while (--i >= 0) { - unsigned long long start = e820_table->map[i].addr; - unsigned long long end = start + e820_table->map[i].size; + unsigned long long start = e820_table->entries[i].addr; + unsigned long long end = start + e820_table->entries[i].size; /* * Since "last" is at most 4GB, we know we'll @@ -661,13 +659,13 @@ __init void e820_reallocate_tables(void) struct e820_table *n; int size; - size = offsetof(struct e820_table, map) + sizeof(struct e820_entry) * e820_table->nr_map; + size = offsetof(struct e820_table, entries) + sizeof(struct e820_entry) * e820_table->nr_entries; n = kmalloc(size, GFP_KERNEL); BUG_ON(!n); memcpy(n, e820_table, size); e820_table = n; - size = offsetof(struct e820_table, map) + sizeof(struct e820_entry) * e820_table_saved->nr_map; + size = offsetof(struct e820_table, entries) + sizeof(struct e820_entry) * e820_table_saved->nr_entries; n = kmalloc(size, GFP_KERNEL); BUG_ON(!n); memcpy(n, e820_table_saved, size); @@ -690,7 +688,7 @@ void __init parse_e820_ext(u64 phys_addr, u32 data_len) entries = sdata->len / sizeof(struct e820_entry); extmap = (struct e820_entry *)(sdata->data); __append_e820_table(extmap, entries); - sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); + sanitize_e820_table(e820_table->entries, ARRAY_SIZE(e820_table->entries), &e820_table->nr_entries); early_memunmap(sdata, data_len); printk(KERN_INFO "e820: extended physical RAM map:\n"); e820_print_map("extended"); @@ -709,8 +707,8 @@ void __init e820_mark_nosave_regions(unsigned long limit_pfn) int i; unsigned long pfn = 0; - for (i = 0; i < e820_table->nr_map; i++) { - struct e820_entry *ei = &e820_table->map[i]; + for (i = 0; i < e820_table->nr_entries; i++) { + struct e820_entry *ei = &e820_table->entries[i]; if (pfn < PFN_UP(ei->addr)) register_nosave_region(pfn, PFN_UP(ei->addr)); @@ -734,8 +732,8 @@ static int __init e820_mark_nvs_memory(void) { int i; - for (i = 0; i < e820_table->nr_map; i++) { - struct e820_entry *ei = &e820_table->map[i]; + for (i = 0; i < e820_table->nr_entries; i++) { + struct e820_entry *ei = &e820_table->entries[i]; if (ei->type == E820_NVS) acpi_nvs_register(ei->addr, ei->size); @@ -782,8 +780,8 @@ static unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type) unsigned long last_pfn = 0; unsigned long max_arch_pfn = MAX_ARCH_PFN; - for (i = 0; i < e820_table->nr_map; i++) { - struct e820_entry *ei = &e820_table->map[i]; + for (i = 0; i < e820_table->nr_entries; i++) { + struct e820_entry *ei = &e820_table->entries[i]; unsigned long start_pfn; unsigned long end_pfn; @@ -874,7 +872,7 @@ static int __init parse_memmap_one(char *p) */ saved_max_pfn = e820_end_of_ram_pfn(); #endif - e820_table->nr_map = 0; + e820_table->nr_entries = 0; userdef = 1; return 0; } @@ -921,8 +919,8 @@ early_param("memmap", parse_memmap_opt); void __init finish_e820_parsing(void) { if (userdef) { - if (sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), - &e820_table->nr_map) < 0) + if (sanitize_e820_table(e820_table->entries, ARRAY_SIZE(e820_table->entries), + &e820_table->nr_entries) < 0) early_panic("Invalid user supplied memory map"); printk(KERN_INFO "e820: user-defined physical RAM map:\n"); @@ -1009,35 +1007,35 @@ void __init e820_reserve_resources(void) struct resource *res; u64 end; - res = alloc_bootmem(sizeof(struct resource) * e820_table->nr_map); + res = alloc_bootmem(sizeof(struct resource) * e820_table->nr_entries); e820_res = res; - for (i = 0; i < e820_table->nr_map; i++) { - end = e820_table->map[i].addr + e820_table->map[i].size - 1; + for (i = 0; i < e820_table->nr_entries; i++) { + end = e820_table->entries[i].addr + e820_table->entries[i].size - 1; if (end != (resource_size_t)end) { res++; continue; } - res->name = e820_type_to_string(e820_table->map[i].type); - res->start = e820_table->map[i].addr; + res->name = e820_type_to_string(e820_table->entries[i].type); + res->start = e820_table->entries[i].addr; res->end = end; - res->flags = e820_type_to_iomem_type(e820_table->map[i].type); - res->desc = e820_type_to_iores_desc(e820_table->map[i].type); + res->flags = e820_type_to_iomem_type(e820_table->entries[i].type); + res->desc = e820_type_to_iores_desc(e820_table->entries[i].type); /* * don't register the region that could be conflicted with * pci device BAR resource and insert them later in * pcibios_resource_survey() */ - if (do_mark_busy(e820_table->map[i].type, res)) { + if (do_mark_busy(e820_table->entries[i].type, res)) { res->flags |= IORESOURCE_BUSY; insert_resource(&iomem_resource, res); } res++; } - for (i = 0; i < e820_table_saved->nr_map; i++) { - struct e820_entry *entry = &e820_table_saved->map[i]; + for (i = 0; i < e820_table_saved->nr_entries; i++) { + struct e820_entry *entry = &e820_table_saved->entries[i]; firmware_map_add_early(entry->addr, entry->addr + entry->size, e820_type_to_string(entry->type)); @@ -1069,7 +1067,7 @@ void __init e820_reserve_resources_late(void) struct resource *res; res = e820_res; - for (i = 0; i < e820_table->nr_map; i++) { + for (i = 0; i < e820_table->nr_entries; i++) { if (!res->parent && res->end) insert_resource_expand_to_fit(&iomem_resource, res); res++; @@ -1079,8 +1077,8 @@ void __init e820_reserve_resources_late(void) * Try to bump up RAM regions to reasonable boundaries to * avoid stolen RAM: */ - for (i = 0; i < e820_table->nr_map; i++) { - struct e820_entry *entry = &e820_table->map[i]; + for (i = 0; i < e820_table->nr_entries; i++) { + struct e820_entry *entry = &e820_table->entries[i]; u64 start, end; if (entry->type != E820_RAM) @@ -1128,7 +1126,7 @@ char *__init default_machine_specific_memory_setup(void) who = "BIOS-e801"; } - e820_table->nr_map = 0; + e820_table->nr_entries = 0; e820_add_region(0, LOWMEMSIZE(), E820_RAM); e820_add_region(HIGH_MEMORY, mem_size << 10, E820_RAM); } @@ -1159,8 +1157,8 @@ void __init memblock_x86_fill(void) */ memblock_allow_resize(); - for (i = 0; i < e820_table->nr_map; i++) { - struct e820_entry *ei = &e820_table->map[i]; + for (i = 0; i < e820_table->nr_entries; i++) { + struct e820_entry *ei = &e820_table->entries[i]; end = ei->addr + ei->size; if (end != (resource_size_t)end) diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c index a6cdf9b9c7a9..4f52758accbc 100644 --- a/arch/x86/kernel/early-quirks.c +++ b/arch/x86/kernel/early-quirks.c @@ -547,7 +547,7 @@ intel_graphics_stolen(int num, int slot, int func, /* Mark this space as reserved */ e820_add_region(base, size, E820_RESERVED); - sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); + sanitize_e820_table(e820_table->entries, ARRAY_SIZE(e820_table->entries), &e820_table->nr_entries); } static void __init intel_graphics_quirks(int num, int slot, int func) diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c index 39d340ac50eb..3e5c995e1718 100644 --- a/arch/x86/kernel/kexec-bzimage64.c +++ b/arch/x86/kernel/kexec-bzimage64.c @@ -100,15 +100,14 @@ static int setup_e820_entries(struct boot_params *params) { unsigned int nr_e820_entries; - nr_e820_entries = e820_table_saved->nr_map; + nr_e820_entries = e820_table_saved->nr_entries; /* TODO: Pass entries more than E820MAX in bootparams setup data */ if (nr_e820_entries > E820MAX) nr_e820_entries = E820MAX; params->e820_entries = nr_e820_entries; - memcpy(¶ms->e820_table, &e820_table_saved->map, - nr_e820_entries * sizeof(struct e820_entry)); + memcpy(¶ms->e820_table, &e820_table_saved->entries, nr_e820_entries*sizeof(struct e820_entry)); return 0; } diff --git a/arch/x86/kernel/resource.c b/arch/x86/kernel/resource.c index 17b494d4bb86..5ab3895516ac 100644 --- a/arch/x86/kernel/resource.c +++ b/arch/x86/kernel/resource.c @@ -27,8 +27,8 @@ static void remove_e820_regions(struct resource *avail) int i; struct e820_entry *entry; - for (i = 0; i < e820_table->nr_map; i++) { - entry = &e820_table->map[i]; + for (i = 0; i < e820_table->nr_entries; i++) { + entry = &e820_table->entries[i]; resource_clip(avail, entry->addr, entry->addr + entry->size - 1); diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index a3c1d39116b7..c2bb2d143d70 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -458,7 +458,7 @@ static void __init e820_reserve_setup_data(void) early_memunmap(data, sizeof(*data)); } - sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); + sanitize_e820_table(e820_table->entries, ARRAY_SIZE(e820_table->entries), &e820_table->nr_entries); memcpy(e820_table_saved, e820_table, sizeof(struct e820_table)); printk(KERN_INFO "extended physical RAM map:\n"); e820_print_map("reserve setup_data"); @@ -763,7 +763,7 @@ static void __init trim_bios_range(void) */ e820_remove_range(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_RAM, 1); - sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); + sanitize_e820_table(e820_table->entries, ARRAY_SIZE(e820_table->entries), &e820_table->nr_entries); } /* called before trim_bios_range() to spare extra sanitize */ @@ -1056,7 +1056,7 @@ void __init setup_arch(char **cmdline_p) if (ppro_with_ram_bug()) { e820_update_range(0x70000000ULL, 0x40000ULL, E820_RAM, E820_RESERVED); - sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); + sanitize_e820_table(e820_table->entries, ARRAY_SIZE(e820_table->entries), &e820_table->nr_entries); printk(KERN_INFO "fixed physical RAM map:\n"); e820_print_map("bad_ppro"); } diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c index 825822688aa5..f7cba42d7807 100644 --- a/arch/x86/kernel/tboot.c +++ b/arch/x86/kernel/tboot.c @@ -188,12 +188,12 @@ static int tboot_setup_sleep(void) tboot->num_mac_regions = 0; - for (i = 0; i < e820_table->nr_map; i++) { - if ((e820_table->map[i].type != E820_RAM) - && (e820_table->map[i].type != E820_RESERVED_KERN)) + for (i = 0; i < e820_table->nr_entries; i++) { + if ((e820_table->entries[i].type != E820_RAM) + && (e820_table->entries[i].type != E820_RESERVED_KERN)) continue; - add_mac_region(e820_table->map[i].addr, e820_table->map[i].size); + add_mac_region(e820_table->entries[i].addr, e820_table->entries[i].size); } tboot->acpi_sinfo.kernel_s3_resume_vector = diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c index 9e055f6859e5..b69199165610 100644 --- a/arch/x86/platform/efi/efi.c +++ b/arch/x86/platform/efi/efi.c @@ -167,7 +167,7 @@ static void __init do_add_efi_memmap(void) } e820_add_region(start, size, e820_type); } - sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); + sanitize_e820_table(e820_table->entries, ARRAY_SIZE(e820_table->entries), &e820_table->nr_entries); } int __init efi_memblock_x86_reserve_range(void) diff --git a/arch/x86/power/hibernate_64.c b/arch/x86/power/hibernate_64.c index 8fe5be0e90b2..1bfda425879c 100644 --- a/arch/x86/power/hibernate_64.c +++ b/arch/x86/power/hibernate_64.c @@ -196,12 +196,12 @@ struct restore_data_record { #if IS_BUILTIN(CONFIG_CRYPTO_MD5) /** - * get_e820_md5 - calculate md5 according to given e820 map + * get_e820_md5 - calculate md5 according to given e820 table * - * @map: the e820 map to be calculated + * @table: the e820 table to be calculated * @buf: the md5 result to be stored to */ -static int get_e820_md5(struct e820_table *map, void *buf) +static int get_e820_md5(struct e820_table *table, void *buf) { struct scatterlist sg; struct crypto_ahash *tfm; @@ -214,10 +214,9 @@ static int get_e820_md5(struct e820_table *map, void *buf) { AHASH_REQUEST_ON_STACK(req, tfm); - size = offsetof(struct e820_table, map) - + sizeof(struct e820_entry) * map->nr_map; + size = offsetof(struct e820_table, entries) + sizeof(struct e820_entry) * table->nr_entries; ahash_request_set_tfm(req, tfm); - sg_init_one(&sg, (u8 *)map, size); + sg_init_one(&sg, (u8 *)table, size); ahash_request_set_callback(req, 0, NULL, NULL); ahash_request_set_crypt(req, &sg, buf, size); diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index f98713e5a705..8b26b9282070 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c @@ -861,7 +861,7 @@ char * __init xen_memory_setup(void) e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS, E820_RESERVED); - sanitize_e820_table(e820_table->map, ARRAY_SIZE(e820_table->map), &e820_table->nr_map); + sanitize_e820_table(e820_table->entries, ARRAY_SIZE(e820_table->entries), &e820_table->nr_entries); /* * Check whether the kernel itself conflicts with the target E820 map. -- cgit v1.2.3-59-g8ed1b From 544a0f47e7803443980496d6c9ae78b6c2b3dbcb Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Sat, 28 Jan 2017 10:07:49 +0100 Subject: x86/boot/e820: Rename e820_table_saved to e820_table_firmware and improve the description So the 'e820_table_saved' is a bit of a misnomer that hides its real purpose. At first sight the name suggests that it's some sort save/restore mechanism, as this is how we typically name such facilities in the kernel. But that is not so, e820_table_saved is the original firmware version of the e820 table, not modified by the kernel. This table is displayed in the /sys/firmware/memmap file, and it's also used by the hibernation code to calculate a physical memory layout MD5 fingerprint checksum which is invariant of the kernel. So rename it to 'e820_table_firmware' and update all the comments to better describe the main e820 data strutures. Also rename: 'initial_e820_table_saved' => 'e820_table_firmware_init' 'e820_update_range_saved' => 'e820_update_range_firmware' ... to better match the new nomenclature. No change in functionality. Cc: Alex Thorlton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dan Williams Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Huang, Ying Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Linus Torvalds Cc: Paul Jackson Cc: Peter Zijlstra Cc: Rafael J. Wysocki Cc: Tejun Heo Cc: Thomas Gleixner Cc: Wei Yang Cc: Yinghai Lu Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar --- arch/x86/include/asm/e820/api.h | 3 +- arch/x86/kernel/e820.c | 78 ++++++++++++++++++++++++--------------- arch/x86/kernel/kexec-bzimage64.c | 4 +- arch/x86/kernel/setup.c | 4 +- arch/x86/power/hibernate_64.c | 4 +- 5 files changed, 56 insertions(+), 37 deletions(-) (limited to 'arch/x86/power') diff --git a/arch/x86/include/asm/e820/api.h b/arch/x86/include/asm/e820/api.h index 2a6de16ad9b5..2c336d8a8593 100644 --- a/arch/x86/include/asm/e820/api.h +++ b/arch/x86/include/asm/e820/api.h @@ -3,9 +3,8 @@ #include -/* see comment in arch/x86/kernel/e820.c */ extern struct e820_table *e820_table; -extern struct e820_table *e820_table_saved; +extern struct e820_table *e820_table_firmware; extern unsigned long pci_mem_start; diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 7d12433ad056..86d6d823e47e 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -27,23 +27,43 @@ #include /* - * The e820 table is the array that gets modified e.g. with command line parameters - * and that is also registered with modifications in the kernel resource tree - * with the iomem_resource as parent. + * The firmware and bootloader passes us an E820 table that is the primary + * physical memory layout description available about x86 systems. * - * The e820_table_saved is directly saved after the BIOS-provided memory map is - * copied. It doesn't get modified afterwards. It's registered for the - * /sys/firmware/memmap interface. + * The kernel takes the e820 memory layout and optionally modifies it with + * quirks and other tweaks, and feeds that into the generic Linux memory + * allocation code routines via a platform independent interface (memblock, etc.). * - * That memory map is not modified and is used as base for kexec. The kexec'd - * kernel should get the same memory map as the firmware provides. Then the - * user can e.g. boot the original kernel with mem=1G while still booting the - * next kernel with full memory. + * We organize the E820 table into two main data structures: + * + * - 'e820_table_firmware': the original firmware version passed to us by the + * bootloader - not modified by the kernel. We use this to: + * + * - inform the user about the firmware's notion of memory layout + * via /sys/firmware/memmap + * + * - the hibernation code uses it to generate a kernel-independent MD5 + * fingerprint of the physical memory layout of a system. + * + * - kexec, which is a bootloader in disguise, uses the original e820 + * layout to pass to the kexec-ed kernel. This way the original kernel + * can have a restricted e820 map while the kexec()-ed kexec-kernel + * can have access to full memory - etc. + * + * - 'e820_table': this is the main e820 table that is massaged by the + * low level x86 platform code, or modified by boot parameters, before + * passed on to higher level MM layers. + * + * Once the e820 map has been converted to the standard Linux memory layout + * information its role stops - modifying it has no effect and does not get + * re-propagated. So itsmain role is a temporary bootstrap storage of firmware + * specific memory layout data during early bootup. */ -static struct e820_table e820_table_init __initdata; -static struct e820_table initial_e820_table_saved __initdata; -struct e820_table *e820_table __refdata = &e820_table_init; -struct e820_table *e820_table_saved __refdata = &initial_e820_table_saved; +static struct e820_table e820_table_init __initdata; +static struct e820_table e820_table_firmware_init __initdata; + +struct e820_table *e820_table __refdata = &e820_table_init; +struct e820_table *e820_table_firmware __refdata = &e820_table_firmware_init; /* For PCI or other memory-mapped resources */ unsigned long pci_mem_start = 0xaeedbabe; @@ -497,10 +517,10 @@ u64 __init e820_update_range(u64 start, u64 size, unsigned old_type, return __e820_update_range(e820_table, start, size, old_type, new_type); } -static u64 __init e820_update_range_saved(u64 start, u64 size, +static u64 __init e820_update_range_firmware(u64 start, u64 size, unsigned old_type, unsigned new_type) { - return __e820_update_range(e820_table_saved, start, size, old_type, + return __e820_update_range(e820_table_firmware, start, size, old_type, new_type); } @@ -572,9 +592,9 @@ void __init update_e820(void) printk(KERN_INFO "e820: modified physical RAM map:\n"); e820_print_map("modified"); } -static void __init update_e820_table_saved(void) +static void __init update_e820_table_firmware(void) { - sanitize_e820_table(e820_table_saved->entries, ARRAY_SIZE(e820_table_saved->entries), &e820_table_saved->nr_entries); + sanitize_e820_table(e820_table_firmware->entries, ARRAY_SIZE(e820_table_firmware->entries), &e820_table_firmware->nr_entries); } #define MAX_GAP_END 0x100000000ull /* @@ -648,7 +668,7 @@ __init void e820_setup_gap(void) /* * Called late during init, in free_initmem(). * - * Initial e820 and e820_table_saved are largish __initdata arrays. + * Initial e820 and e820_table_firmware are largish __initdata arrays. * Copy them to (usually much smaller) dynamically allocated area. * This is done after all tweaks we ever do to them: * all functions which modify them are __init functions, @@ -665,11 +685,11 @@ __init void e820_reallocate_tables(void) memcpy(n, e820_table, size); e820_table = n; - size = offsetof(struct e820_table, entries) + sizeof(struct e820_entry) * e820_table_saved->nr_entries; + size = offsetof(struct e820_table, entries) + sizeof(struct e820_entry) * e820_table_firmware->nr_entries; n = kmalloc(size, GFP_KERNEL); BUG_ON(!n); - memcpy(n, e820_table_saved, size); - e820_table_saved = n; + memcpy(n, e820_table_firmware, size); + e820_table_firmware = n; } /** @@ -745,7 +765,7 @@ core_initcall(e820_mark_nvs_memory); #endif /* - * pre allocated 4k and reserved it in memblock and e820_table_saved + * pre allocated 4k and reserved it in memblock and e820_table_firmware */ u64 __init early_reserve_e820(u64 size, u64 align) { @@ -753,9 +773,9 @@ u64 __init early_reserve_e820(u64 size, u64 align) addr = __memblock_alloc_base(size, align, MEMBLOCK_ALLOC_ACCESSIBLE); if (addr) { - e820_update_range_saved(addr, size, E820_RAM, E820_RESERVED); - printk(KERN_INFO "e820: update e820_table_saved for early_reserve_e820\n"); - update_e820_table_saved(); + e820_update_range_firmware(addr, size, E820_RAM, E820_RESERVED); + printk(KERN_INFO "e820: update e820_table_firmware for early_reserve_e820\n"); + update_e820_table_firmware(); } return addr; @@ -1034,8 +1054,8 @@ void __init e820_reserve_resources(void) res++; } - for (i = 0; i < e820_table_saved->nr_entries; i++) { - struct e820_entry *entry = &e820_table_saved->entries[i]; + for (i = 0; i < e820_table_firmware->nr_entries; i++) { + struct e820_entry *entry = &e820_table_firmware->entries[i]; firmware_map_add_early(entry->addr, entry->addr + entry->size, e820_type_to_string(entry->type)); @@ -1145,7 +1165,7 @@ void __init e820__memory_setup(void) char *who; who = x86_init.resources.memory_setup(); - memcpy(e820_table_saved, e820_table, sizeof(struct e820_table)); + memcpy(e820_table_firmware, e820_table, sizeof(struct e820_table)); printk(KERN_INFO "e820: BIOS-provided physical RAM map:\n"); e820_print_map(who); } diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c index 3e5c995e1718..a8c9563557c9 100644 --- a/arch/x86/kernel/kexec-bzimage64.c +++ b/arch/x86/kernel/kexec-bzimage64.c @@ -100,14 +100,14 @@ static int setup_e820_entries(struct boot_params *params) { unsigned int nr_e820_entries; - nr_e820_entries = e820_table_saved->nr_entries; + nr_e820_entries = e820_table_firmware->nr_entries; /* TODO: Pass entries more than E820MAX in bootparams setup data */ if (nr_e820_entries > E820MAX) nr_e820_entries = E820MAX; params->e820_entries = nr_e820_entries; - memcpy(¶ms->e820_table, &e820_table_saved->entries, nr_e820_entries*sizeof(struct e820_entry)); + memcpy(¶ms->e820_table, &e820_table_firmware->entries, nr_e820_entries*sizeof(struct e820_entry)); return 0; } diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index a8d0e388b358..f905430d7b04 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -459,7 +459,7 @@ static void __init e820_reserve_setup_data(void) } sanitize_e820_table(e820_table->entries, ARRAY_SIZE(e820_table->entries), &e820_table->nr_entries); - memcpy(e820_table_saved, e820_table, sizeof(struct e820_table)); + memcpy(e820_table_firmware, e820_table, sizeof(struct e820_table)); printk(KERN_INFO "extended physical RAM map:\n"); e820_print_map("reserve setup_data"); } @@ -1026,7 +1026,7 @@ void __init setup_arch(char **cmdline_p) early_dump_pci_devices(); #endif - /* update the e820_table_saved too */ + /* update the e820_table_firmware too */ e820_reserve_setup_data(); finish_e820_parsing(); diff --git a/arch/x86/power/hibernate_64.c b/arch/x86/power/hibernate_64.c index 1bfda425879c..053801b022dd 100644 --- a/arch/x86/power/hibernate_64.c +++ b/arch/x86/power/hibernate_64.c @@ -231,7 +231,7 @@ static int get_e820_md5(struct e820_table *table, void *buf) static void hibernation_e820_save(void *buf) { - get_e820_md5(e820_table_saved, buf); + get_e820_md5(e820_table_firmware, buf); } static bool hibernation_e820_mismatch(void *buf) @@ -244,7 +244,7 @@ static bool hibernation_e820_mismatch(void *buf) if (!memcmp(result, buf, MD5_DIGEST_SIZE)) return false; - ret = get_e820_md5(e820_table_saved, result); + ret = get_e820_md5(e820_table_firmware, result); if (ret) return true; -- cgit v1.2.3-59-g8ed1b