kexec_file, power: print out debugging message if required
authorBaoquan He <bhe@redhat.com>
Wed, 13 Dec 2023 05:57:46 +0000 (13:57 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 20 Dec 2023 23:02:57 +0000 (15:02 -0800)
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.

Link: https://lkml.kernel.org/r/20231213055747.61826-7-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>
arch/powerpc/kexec/elf_64.c
arch/powerpc/kexec/file_load_64.c

index eeb258002d1e020f3cb2402d7ae81ff7ce07de30..904016cf89ea46ab4002f6eed57363ec4f833815 100644 (file)
@@ -59,7 +59,7 @@ static void *elf64_load(struct kimage *image, char *kernel_buf,
        if (ret)
                goto out;
 
-       pr_debug("Loaded the kernel at 0x%lx\n", kernel_load_addr);
+       kexec_dprintk("Loaded the kernel at 0x%lx\n", kernel_load_addr);
 
        ret = kexec_load_purgatory(image, &pbuf);
        if (ret) {
@@ -67,7 +67,7 @@ static void *elf64_load(struct kimage *image, char *kernel_buf,
                goto out;
        }
 
-       pr_debug("Loaded purgatory at 0x%lx\n", pbuf.mem);
+       kexec_dprintk("Loaded purgatory at 0x%lx\n", pbuf.mem);
 
        /* Load additional segments needed for panic kernel */
        if (image->type == KEXEC_TYPE_CRASH) {
@@ -99,7 +99,7 @@ static void *elf64_load(struct kimage *image, char *kernel_buf,
                        goto out;
                initrd_load_addr = kbuf.mem;
 
-               pr_debug("Loaded initrd at 0x%lx\n", initrd_load_addr);
+               kexec_dprintk("Loaded initrd at 0x%lx\n", initrd_load_addr);
        }
 
        fdt = of_kexec_alloc_and_setup_fdt(image, initrd_load_addr,
@@ -132,7 +132,7 @@ static void *elf64_load(struct kimage *image, char *kernel_buf,
 
        fdt_load_addr = kbuf.mem;
 
-       pr_debug("Loaded device tree at 0x%lx\n", fdt_load_addr);
+       kexec_dprintk("Loaded device tree at 0x%lx\n", fdt_load_addr);
 
        slave_code = elf_info.buffer + elf_info.proghdrs[0].p_offset;
        ret = setup_purgatory_ppc64(image, slave_code, fdt, kernel_load_addr,
index 961a6dd6736566958145b972bfaee85872319cfe..5b4c5cb233548509f3db2c3953ba7877debde09d 100644 (file)
@@ -577,7 +577,7 @@ static int add_usable_mem_property(void *fdt, struct device_node *dn,
                       NODE_PATH_LEN, dn);
                return -EOVERFLOW;
        }
-       pr_debug("Memory node path: %s\n", path);
+       kexec_dprintk("Memory node path: %s\n", path);
 
        /* Now that we know the path, find its offset in kdump kernel's fdt */
        node = fdt_path_offset(fdt, path);
@@ -590,8 +590,8 @@ static int add_usable_mem_property(void *fdt, struct device_node *dn,
        /* Get the address & size cells */
        n_mem_addr_cells = of_n_addr_cells(dn);
        n_mem_size_cells = of_n_size_cells(dn);
-       pr_debug("address cells: %d, size cells: %d\n", n_mem_addr_cells,
-                n_mem_size_cells);
+       kexec_dprintk("address cells: %d, size cells: %d\n", n_mem_addr_cells,
+                     n_mem_size_cells);
 
        um_info->idx  = 0;
        if (!check_realloc_usable_mem(um_info, 2)) {
@@ -664,7 +664,7 @@ static int update_usable_mem_fdt(void *fdt, struct crash_mem *usable_mem)
 
        node = fdt_path_offset(fdt, "/ibm,dynamic-reconfiguration-memory");
        if (node == -FDT_ERR_NOTFOUND)
-               pr_debug("No dynamic reconfiguration memory found\n");
+               kexec_dprintk("No dynamic reconfiguration memory found\n");
        else if (node < 0) {
                pr_err("Malformed device tree: error reading /ibm,dynamic-reconfiguration-memory.\n");
                return -EINVAL;
@@ -776,8 +776,8 @@ static void update_backup_region_phdr(struct kimage *image, Elf64_Ehdr *ehdr)
        for (i = 0; i < ehdr->e_phnum; i++) {
                if (phdr->p_paddr == BACKUP_SRC_START) {
                        phdr->p_offset = image->arch.backup_start;
-                       pr_debug("Backup region offset updated to 0x%lx\n",
-                                image->arch.backup_start);
+                       kexec_dprintk("Backup region offset updated to 0x%lx\n",
+                                     image->arch.backup_start);
                        return;
                }
        }
@@ -850,7 +850,7 @@ int load_crashdump_segments_ppc64(struct kimage *image,
                pr_err("Failed to load backup segment\n");
                return ret;
        }
-       pr_debug("Loaded the backup region at 0x%lx\n", kbuf->mem);
+       kexec_dprintk("Loaded the backup region at 0x%lx\n", kbuf->mem);
 
        /* Load elfcorehdr segment - to export crashing kernel's vmcore */
        ret = load_elfcorehdr_segment(image, kbuf);
@@ -858,8 +858,8 @@ int load_crashdump_segments_ppc64(struct kimage *image,
                pr_err("Failed to load elfcorehdr segment\n");
                return ret;
        }
-       pr_debug("Loaded elf core header at 0x%lx, bufsz=0x%lx memsz=0x%lx\n",
-                image->elf_load_addr, kbuf->bufsz, kbuf->memsz);
+       kexec_dprintk("Loaded elf core header at 0x%lx, bufsz=0x%lx memsz=0x%lx\n",
+                     image->elf_load_addr, kbuf->bufsz, kbuf->memsz);
 
        return 0;
 }