Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

kexec_file, arm64: print out debugging message if required

Then when specifying '-d' for kexec_file_load interface, loaded locations
of kernel/initrd/cmdline etc can be printed out to help debug.

Here replace pr_debug() with the newly added kexec_dprintk() in kexec_file
loading related codes.

And also remove the kimage->segment[] printing because the generic code
has done the printing.

Link: https://lkml.kernel.org/r/20231213055747.61826-5-bhe@redhat.com
Signed-off-by: Baoquan He <bhe@redhat.com>
Cc: Conor Dooley <conor@kernel.org>
Cc: Joe Perches <joe@perches.com>
Cc: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Baoquan He and committed by
Andrew Morton
6f8c1da0 e687b2fa

+15 -29
+3 -3
arch/arm64/kernel/kexec_image.c
··· 122 122 kernel_segment->memsz -= text_offset; 123 123 image->start = kernel_segment->mem; 124 124 125 - pr_debug("Loaded kernel at 0x%lx bufsz=0x%lx memsz=0x%lx\n", 126 - kernel_segment->mem, kbuf.bufsz, 127 - kernel_segment->memsz); 125 + kexec_dprintk("Loaded kernel at 0x%lx bufsz=0x%lx memsz=0x%lx\n", 126 + kernel_segment->mem, kbuf.bufsz, 127 + kernel_segment->memsz); 128 128 129 129 return NULL; 130 130 }
+6 -20
arch/arm64/kernel/machine_kexec.c
··· 32 32 static void _kexec_image_info(const char *func, int line, 33 33 const struct kimage *kimage) 34 34 { 35 - unsigned long i; 36 - 37 - pr_debug("%s:%d:\n", func, line); 38 - pr_debug(" kexec kimage info:\n"); 39 - pr_debug(" type: %d\n", kimage->type); 40 - pr_debug(" start: %lx\n", kimage->start); 41 - pr_debug(" head: %lx\n", kimage->head); 42 - pr_debug(" nr_segments: %lu\n", kimage->nr_segments); 43 - pr_debug(" dtb_mem: %pa\n", &kimage->arch.dtb_mem); 44 - pr_debug(" kern_reloc: %pa\n", &kimage->arch.kern_reloc); 45 - pr_debug(" el2_vectors: %pa\n", &kimage->arch.el2_vectors); 46 - 47 - for (i = 0; i < kimage->nr_segments; i++) { 48 - pr_debug(" segment[%lu]: %016lx - %016lx, 0x%lx bytes, %lu pages\n", 49 - i, 50 - kimage->segment[i].mem, 51 - kimage->segment[i].mem + kimage->segment[i].memsz, 52 - kimage->segment[i].memsz, 53 - kimage->segment[i].memsz / PAGE_SIZE); 54 - } 35 + kexec_dprintk("%s:%d:\n", func, line); 36 + kexec_dprintk(" kexec kimage info:\n"); 37 + kexec_dprintk(" type: %d\n", kimage->type); 38 + kexec_dprintk(" head: %lx\n", kimage->head); 39 + kexec_dprintk(" kern_reloc: %pa\n", &kimage->arch.kern_reloc); 40 + kexec_dprintk(" el2_vectors: %pa\n", &kimage->arch.el2_vectors); 55 41 } 56 42 57 43 void machine_kexec_cleanup(struct kimage *kimage)
+6 -6
arch/arm64/kernel/machine_kexec_file.c
··· 127 127 image->elf_load_addr = kbuf.mem; 128 128 image->elf_headers_sz = headers_sz; 129 129 130 - pr_debug("Loaded elf core header at 0x%lx bufsz=0x%lx memsz=0x%lx\n", 131 - image->elf_load_addr, kbuf.bufsz, kbuf.memsz); 130 + kexec_dprintk("Loaded elf core header at 0x%lx bufsz=0x%lx memsz=0x%lx\n", 131 + image->elf_load_addr, kbuf.bufsz, kbuf.memsz); 132 132 } 133 133 134 134 /* load initrd */ ··· 148 148 goto out_err; 149 149 initrd_load_addr = kbuf.mem; 150 150 151 - pr_debug("Loaded initrd at 0x%lx bufsz=0x%lx memsz=0x%lx\n", 152 - initrd_load_addr, kbuf.bufsz, kbuf.memsz); 151 + kexec_dprintk("Loaded initrd at 0x%lx bufsz=0x%lx memsz=0x%lx\n", 152 + initrd_load_addr, kbuf.bufsz, kbuf.memsz); 153 153 } 154 154 155 155 /* load dtb */ ··· 179 179 image->arch.dtb = dtb; 180 180 image->arch.dtb_mem = kbuf.mem; 181 181 182 - pr_debug("Loaded dtb at 0x%lx bufsz=0x%lx memsz=0x%lx\n", 183 - kbuf.mem, kbuf.bufsz, kbuf.memsz); 182 + kexec_dprintk("Loaded dtb at 0x%lx bufsz=0x%lx memsz=0x%lx\n", 183 + kbuf.mem, kbuf.bufsz, kbuf.memsz); 184 184 185 185 return 0; 186 186