Lines Matching refs:pi

453 	struct purgatory_info *pi = &image->purgatory_info;  in kimage_file_post_load_cleanup()  local
464 vfree(pi->purgatory_buf); in kimage_file_post_load_cleanup()
465 pi->purgatory_buf = NULL; in kimage_file_post_load_cleanup()
467 vfree(pi->sechdrs); in kimage_file_post_load_cleanup()
468 pi->sechdrs = NULL; in kimage_file_post_load_cleanup()
2190 struct purgatory_info *pi = &image->purgatory_info; in kexec_calculate_store_digests() local
2234 if (ksegment->kbuf == pi->purgatory_buf) in kexec_calculate_store_digests()
2297 struct purgatory_info *pi = &image->purgatory_info; in __kexec_load_purgatory() local
2310 sechdrs_c = (void *)pi->ehdr + pi->ehdr->e_shoff; in __kexec_load_purgatory()
2319 sechdrs = vzalloc(pi->ehdr->e_shnum * sizeof(Elf_Shdr)); in __kexec_load_purgatory()
2323 memcpy(sechdrs, sechdrs_c, pi->ehdr->e_shnum * sizeof(Elf_Shdr)); in __kexec_load_purgatory()
2339 for (i = 0; i < pi->ehdr->e_shnum; i++) { in __kexec_load_purgatory()
2343 sechdrs[i].sh_offset = (unsigned long)pi->ehdr + in __kexec_load_purgatory()
2351 entry = pi->ehdr->e_entry; in __kexec_load_purgatory()
2352 for (i = 0; i < pi->ehdr->e_shnum; i++) { in __kexec_load_purgatory()
2360 if (sechdrs[i].sh_addr <= pi->ehdr->e_entry && in __kexec_load_purgatory()
2362 pi->ehdr->e_entry)) { in __kexec_load_purgatory()
2375 for (i = 0; i < pi->ehdr->e_shnum; i++) { in __kexec_load_purgatory()
2414 &pi->purgatory_load_addr); in __kexec_load_purgatory()
2420 load_addr = curr_load_addr = pi->purgatory_load_addr; in __kexec_load_purgatory()
2423 for (i = 0; i < pi->ehdr->e_shnum; i++) { in __kexec_load_purgatory()
2461 pi->sechdrs = sechdrs; in __kexec_load_purgatory()
2467 pi->purgatory_buf = purgatory_buf; in __kexec_load_purgatory()
2478 struct purgatory_info *pi = &image->purgatory_info; in kexec_apply_relocations() local
2479 Elf_Shdr *sechdrs = pi->sechdrs; in kexec_apply_relocations()
2482 for (i = 0; i < pi->ehdr->e_shnum; i++) { in kexec_apply_relocations()
2495 if (sechdrs[i].sh_info >= pi->ehdr->e_shnum || in kexec_apply_relocations()
2496 sechdrs[i].sh_link >= pi->ehdr->e_shnum) in kexec_apply_relocations()
2509 if (symtab->sh_link >= pi->ehdr->e_shnum) in kexec_apply_relocations()
2518 ret = arch_kexec_apply_relocations_add(pi->ehdr, in kexec_apply_relocations()
2521 ret = arch_kexec_apply_relocations(pi->ehdr, in kexec_apply_relocations()
2535 struct purgatory_info *pi = &image->purgatory_info; in kexec_load_purgatory() local
2544 pi->ehdr = (Elf_Ehdr *)kexec_purgatory; in kexec_load_purgatory()
2546 if (memcmp(pi->ehdr->e_ident, ELFMAG, SELFMAG) != 0 in kexec_load_purgatory()
2547 || pi->ehdr->e_type != ET_REL in kexec_load_purgatory()
2548 || !elf_check_arch(pi->ehdr) in kexec_load_purgatory()
2549 || pi->ehdr->e_shentsize != sizeof(Elf_Shdr)) in kexec_load_purgatory()
2552 if (pi->ehdr->e_shoff >= kexec_purgatory_size in kexec_load_purgatory()
2553 || (pi->ehdr->e_shnum * sizeof(Elf_Shdr) > in kexec_load_purgatory()
2554 kexec_purgatory_size - pi->ehdr->e_shoff)) in kexec_load_purgatory()
2565 *load_addr = pi->purgatory_load_addr; in kexec_load_purgatory()
2568 vfree(pi->sechdrs); in kexec_load_purgatory()
2569 vfree(pi->purgatory_buf); in kexec_load_purgatory()
2573 static Elf_Sym *kexec_purgatory_find_symbol(struct purgatory_info *pi, in kexec_purgatory_find_symbol() argument
2582 if (!pi->sechdrs || !pi->ehdr) in kexec_purgatory_find_symbol()
2585 sechdrs = pi->sechdrs; in kexec_purgatory_find_symbol()
2586 ehdr = pi->ehdr; in kexec_purgatory_find_symbol()
2623 struct purgatory_info *pi = &image->purgatory_info; in kexec_purgatory_get_symbol_addr() local
2627 sym = kexec_purgatory_find_symbol(pi, name); in kexec_purgatory_get_symbol_addr()
2631 sechdr = &pi->sechdrs[sym->st_shndx]; in kexec_purgatory_get_symbol_addr()
2649 struct purgatory_info *pi = &image->purgatory_info; in kexec_purgatory_get_set_symbol() local
2652 sym = kexec_purgatory_find_symbol(pi, name); in kexec_purgatory_get_set_symbol()
2662 sechdrs = pi->sechdrs; in kexec_purgatory_get_set_symbol()