Loading Documentation/x86/zero-page.txt +3 −3 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ 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_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) Loading @@ -35,6 +35,6 @@ Offset Proto Name Meaning 1EC/001 ALL secure_boot Secure boot is enabled in the firmware 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) 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) arch/x86/boot/compressed/eboot.c +23 −21 Original line number Diff line number Diff line Loading @@ -9,7 +9,9 @@ #include <linux/efi.h> #include <linux/pci.h> #include <asm/efi.h> #include <asm/e820/types.h> #include <asm/setup.h> #include <asm/desc.h> Loading Loading @@ -729,7 +731,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 boot_e820_entry); e820ext->next = 0; data = (struct setup_data *)(unsigned long)params->hdr.setup_data; Loading @@ -746,9 +748,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 boot_e820_entry *entry = params->e820_table; struct efi_info *efi = ¶ms->efi_info; struct e820entry *prev = NULL; struct boot_e820_entry *prev = NULL; u32 nr_entries; u32 nr_desc; int i; Loading @@ -773,15 +775,15 @@ static efi_status_t setup_e820(struct boot_params *params, case EFI_MEMORY_MAPPED_IO: case EFI_MEMORY_MAPPED_IO_PORT_SPACE: case EFI_PAL_CODE: e820_type = E820_RESERVED; e820_type = E820_TYPE_RESERVED; break; case EFI_UNUSABLE_MEMORY: e820_type = E820_UNUSABLE; e820_type = E820_TYPE_UNUSABLE; break; case EFI_ACPI_RECLAIM_MEMORY: e820_type = E820_ACPI; e820_type = E820_TYPE_ACPI; break; case EFI_LOADER_CODE: Loading @@ -789,15 +791,15 @@ static efi_status_t setup_e820(struct boot_params *params, case EFI_BOOT_SERVICES_CODE: case EFI_BOOT_SERVICES_DATA: case EFI_CONVENTIONAL_MEMORY: e820_type = E820_RAM; e820_type = E820_TYPE_RAM; break; case EFI_ACPI_MEMORY_NVS: e820_type = E820_NVS; e820_type = E820_TYPE_NVS; break; case EFI_PERSISTENT_MEMORY: e820_type = E820_PMEM; e820_type = E820_TYPE_PMEM; break; default: Loading @@ -811,26 +813,26 @@ static efi_status_t setup_e820(struct boot_params *params, continue; } if (nr_entries == ARRAY_SIZE(params->e820_map)) { u32 need = (nr_desc - i) * sizeof(struct e820entry) + if (nr_entries == ARRAY_SIZE(params->e820_table)) { 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; entry = (struct boot_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++; entry->addr = d->phys_addr; entry->size = d->num_pages << PAGE_SHIFT; entry->type = e820_type; prev = entry++; 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_table)) { u32 nr_e820ext = nr_entries - ARRAY_SIZE(params->e820_table); add_e820ext(params, e820ext, nr_e820ext); nr_entries -= nr_e820ext; Loading @@ -848,7 +850,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); Loading Loading @@ -884,9 +886,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_table)) { u32 nr_e820ext = nr_desc - ARRAY_SIZE(p->boot_params->e820_map); ARRAY_SIZE(p->boot_params->e820_table); status = alloc_e820ext(nr_e820ext, &p->e820ext, &p->e820ext_size); Loading arch/x86/boot/compressed/kaslr.c +3 −3 Original line number Diff line number Diff line Loading @@ -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 boot_e820_entry *entry, unsigned long minimum, unsigned long image_size) { Loading @@ -435,7 +435,7 @@ static void process_e820_entry(struct e820entry *entry, unsigned long start_orig; /* Skip non-RAM entries. */ if (entry->type != E820_RAM) if (entry->type != E820_TYPE_RAM) return; /* On 32-bit, ignore entries entirely above our maximum. */ Loading Loading @@ -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_table[i], minimum, image_size); if (slot_area_index == MAX_SLOT_AREA) { debug_putstr("Aborted e820 scan (slot_areas full)!\n"); Loading arch/x86/boot/header.S +0 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ #include <asm/segment.h> #include <generated/utsrelease.h> #include <asm/boot.h> #include <asm/e820.h> #include <asm/page_types.h> #include <asm/setup.h> #include <asm/bootparam.h> Loading arch/x86/boot/memory.c +3 −3 Original line number Diff line number Diff line Loading @@ -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 boot_e820_entry *desc = boot_params.e820_table; static struct boot_e820_entry buf; /* static so it is zeroed */ initregs(&ireg); ireg.ax = 0xe820; Loading Loading @@ -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_table)); return boot_params.e820_entries = count; } Loading Loading
Documentation/x86/zero-page.txt +3 −3 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ 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_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) Loading @@ -35,6 +35,6 @@ Offset Proto Name Meaning 1EC/001 ALL secure_boot Secure boot is enabled in the firmware 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) 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)
arch/x86/boot/compressed/eboot.c +23 −21 Original line number Diff line number Diff line Loading @@ -9,7 +9,9 @@ #include <linux/efi.h> #include <linux/pci.h> #include <asm/efi.h> #include <asm/e820/types.h> #include <asm/setup.h> #include <asm/desc.h> Loading Loading @@ -729,7 +731,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 boot_e820_entry); e820ext->next = 0; data = (struct setup_data *)(unsigned long)params->hdr.setup_data; Loading @@ -746,9 +748,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 boot_e820_entry *entry = params->e820_table; struct efi_info *efi = ¶ms->efi_info; struct e820entry *prev = NULL; struct boot_e820_entry *prev = NULL; u32 nr_entries; u32 nr_desc; int i; Loading @@ -773,15 +775,15 @@ static efi_status_t setup_e820(struct boot_params *params, case EFI_MEMORY_MAPPED_IO: case EFI_MEMORY_MAPPED_IO_PORT_SPACE: case EFI_PAL_CODE: e820_type = E820_RESERVED; e820_type = E820_TYPE_RESERVED; break; case EFI_UNUSABLE_MEMORY: e820_type = E820_UNUSABLE; e820_type = E820_TYPE_UNUSABLE; break; case EFI_ACPI_RECLAIM_MEMORY: e820_type = E820_ACPI; e820_type = E820_TYPE_ACPI; break; case EFI_LOADER_CODE: Loading @@ -789,15 +791,15 @@ static efi_status_t setup_e820(struct boot_params *params, case EFI_BOOT_SERVICES_CODE: case EFI_BOOT_SERVICES_DATA: case EFI_CONVENTIONAL_MEMORY: e820_type = E820_RAM; e820_type = E820_TYPE_RAM; break; case EFI_ACPI_MEMORY_NVS: e820_type = E820_NVS; e820_type = E820_TYPE_NVS; break; case EFI_PERSISTENT_MEMORY: e820_type = E820_PMEM; e820_type = E820_TYPE_PMEM; break; default: Loading @@ -811,26 +813,26 @@ static efi_status_t setup_e820(struct boot_params *params, continue; } if (nr_entries == ARRAY_SIZE(params->e820_map)) { u32 need = (nr_desc - i) * sizeof(struct e820entry) + if (nr_entries == ARRAY_SIZE(params->e820_table)) { 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; entry = (struct boot_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++; entry->addr = d->phys_addr; entry->size = d->num_pages << PAGE_SHIFT; entry->type = e820_type; prev = entry++; 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_table)) { u32 nr_e820ext = nr_entries - ARRAY_SIZE(params->e820_table); add_e820ext(params, e820ext, nr_e820ext); nr_entries -= nr_e820ext; Loading @@ -848,7 +850,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); Loading Loading @@ -884,9 +886,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_table)) { u32 nr_e820ext = nr_desc - ARRAY_SIZE(p->boot_params->e820_map); ARRAY_SIZE(p->boot_params->e820_table); status = alloc_e820ext(nr_e820ext, &p->e820ext, &p->e820ext_size); Loading
arch/x86/boot/compressed/kaslr.c +3 −3 Original line number Diff line number Diff line Loading @@ -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 boot_e820_entry *entry, unsigned long minimum, unsigned long image_size) { Loading @@ -435,7 +435,7 @@ static void process_e820_entry(struct e820entry *entry, unsigned long start_orig; /* Skip non-RAM entries. */ if (entry->type != E820_RAM) if (entry->type != E820_TYPE_RAM) return; /* On 32-bit, ignore entries entirely above our maximum. */ Loading Loading @@ -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_table[i], minimum, image_size); if (slot_area_index == MAX_SLOT_AREA) { debug_putstr("Aborted e820 scan (slot_areas full)!\n"); Loading
arch/x86/boot/header.S +0 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ #include <asm/segment.h> #include <generated/utsrelease.h> #include <asm/boot.h> #include <asm/e820.h> #include <asm/page_types.h> #include <asm/setup.h> #include <asm/bootparam.h> Loading
arch/x86/boot/memory.c +3 −3 Original line number Diff line number Diff line Loading @@ -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 boot_e820_entry *desc = boot_params.e820_table; static struct boot_e820_entry buf; /* static so it is zeroed */ initregs(&ireg); ireg.ax = 0xe820; Loading Loading @@ -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_table)); return boot_params.e820_entries = count; } Loading