Lines Matching refs:image

43 static void machine_kexec_free_page_tables(struct kimage *image)
45 free_pages((unsigned long)image->arch.pgd, PGD_ALLOCATION_ORDER);
46 image->arch.pgd = NULL;
48 free_page((unsigned long)image->arch.pmd0);
49 image->arch.pmd0 = NULL;
50 free_page((unsigned long)image->arch.pmd1);
51 image->arch.pmd1 = NULL;
53 free_page((unsigned long)image->arch.pte0);
54 image->arch.pte0 = NULL;
55 free_page((unsigned long)image->arch.pte1);
56 image->arch.pte1 = NULL;
59 static int machine_kexec_alloc_page_tables(struct kimage *image)
61 image->arch.pgd = (pgd_t *)__get_free_pages(GFP_KERNEL | __GFP_ZERO,
64 image->arch.pmd0 = (pmd_t *)get_zeroed_page(GFP_KERNEL);
65 image->arch.pmd1 = (pmd_t *)get_zeroed_page(GFP_KERNEL);
67 image->arch.pte0 = (pte_t *)get_zeroed_page(GFP_KERNEL);
68 image->arch.pte1 = (pte_t *)get_zeroed_page(GFP_KERNEL);
69 if (!image->arch.pgd ||
71 !image->arch.pmd0 || !image->arch.pmd1 ||
73 !image->arch.pte0 || !image->arch.pte1) {
100 static void machine_kexec_prepare_page_tables(struct kimage *image)
105 control_page = page_address(image->control_code_page);
107 pmd = image->arch.pmd0;
110 image->arch.pgd, pmd, image->arch.pte0,
113 pmd = image->arch.pmd1;
116 image->arch.pgd, pmd, image->arch.pte1,
122 * proposed image and prepare the control pages
127 * Do what every setup is needed on image and the
135 int machine_kexec_prepare(struct kimage *image)
139 set_memory_x((unsigned long)page_address(image->control_code_page), 1);
140 error = machine_kexec_alloc_page_tables(image);
143 machine_kexec_prepare_page_tables(image);
149 * when an image is freed.
151 void machine_kexec_cleanup(struct kimage *image)
153 set_memory_nx((unsigned long)page_address(image->control_code_page), 1);
154 machine_kexec_free_page_tables(image);
161 void machine_kexec(struct kimage *image)
174 if (image->preserve_context)
184 if (image->preserve_context) {
197 control_page = page_address(image->control_code_page);
203 page_list[PA_PGD] = __pa(image->arch.pgd);
205 if (image->type == KEXEC_TYPE_DEFAULT)
206 page_list[PA_SWAP_PAGE] = (page_to_pfn(image->swap_page)
228 image->start = relocate_kernel_ptr((unsigned long)image->head,
230 image->start,
232 image->preserve_context);
235 if (image->preserve_context)