CC: kbuild-...@lists.01.org
TO: Rob Herring <r...@kernel.org>
CC: Lakshmi Ramasubramanian <nra...@linux.microsoft.com>
CC: Thiago Jung Bauermann <bauer...@linux.ibm.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
head:   8d3a1cb32124eaeb3f2efe4889de214d3b658d8d
commit: 3c985d31ad661a2cc0ad0a55105046fc56a7b1fd [7/57] powerpc: Use common 
of_kexec_alloc_and_setup_fdt()
:::::: branch date: 2 days ago
:::::: commit date: 4 weeks ago
config: powerpc-randconfig-m031-20210403 (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>
Reported-by: Dan Carpenter <dan.carpen...@oracle.com>

smatch warnings:
arch/powerpc/kexec/elf_64.c:153 elf64_load() error: uninitialized symbol 'fdt'.

vim +/fdt +153 arch/powerpc/kexec/elf_64.c

a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   26  
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   27  static void *elf64_load(struct kimage *image, char *kernel_buf,
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   28                         unsigned long kernel_len, char *initrd,
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   29                         unsigned long initrd_len, char *cmdline,
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   30                         unsigned long cmdline_len)
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   31  {
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   32         int ret;
3be3f61d25e04e arch/powerpc/kernel/kexec_elf_64.c Philipp Rudo          
2018-04-13   33         unsigned long kernel_load_addr;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   34         unsigned long initrd_load_addr = 0, fdt_load_addr;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   35         void *fdt;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   36         const void *slave_code;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   37         struct elfhdr ehdr;
cb350c1f1f867d arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   38         char *modified_cmdline = NULL;
175fca3bf91a11 arch/powerpc/kernel/kexec_elf_64.c Sven Schnelle         
2019-08-23   39         struct kexec_elf_info elf_info;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   40         struct kexec_buf kbuf = { .image = image, .buf_min = 0,
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   41                                   .buf_max = ppc64_rma_size };
3be3f61d25e04e arch/powerpc/kernel/kexec_elf_64.c Philipp Rudo          
2018-04-13   42         struct kexec_buf pbuf = { .image = image, .buf_min = 0,
8b909e3548706c arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2019-05-22   43                                   .buf_max = ppc64_rma_size, 
.top_down = true,
8b909e3548706c arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2019-05-22   44                                   .mem = KEXEC_BUF_MEM_UNKNOWN 
};
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   45  
175fca3bf91a11 arch/powerpc/kernel/kexec_elf_64.c Sven Schnelle         
2019-08-23   46         ret = kexec_build_elf_info(kernel_buf, kernel_len, 
&ehdr, &elf_info);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   47         if (ret)
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   48                 goto out;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   49  
b8e55a3e5c2088 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   50         if (image->type == KEXEC_TYPE_CRASH) {
b8e55a3e5c2088 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   51                 /* min & max buffer values for kdump case */
b8e55a3e5c2088 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   52                 kbuf.buf_min = pbuf.buf_min = crashk_res.start;
b8e55a3e5c2088 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   53                 kbuf.buf_max = pbuf.buf_max =
b8e55a3e5c2088 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   54                                 ((crashk_res.end < 
ppc64_rma_size) ?
b8e55a3e5c2088 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   55                                  crashk_res.end : 
(ppc64_rma_size - 1));
b8e55a3e5c2088 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   56         }
b8e55a3e5c2088 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   57  
175fca3bf91a11 arch/powerpc/kernel/kexec_elf_64.c Sven Schnelle         
2019-08-23   58         ret = kexec_elf_load(image, &ehdr, &elf_info, &kbuf, 
&kernel_load_addr);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   59         if (ret)
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   60                 goto out;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   61  
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   62         pr_debug("Loaded the kernel at 0x%lx\n", 
kernel_load_addr);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   63  
3be3f61d25e04e arch/powerpc/kernel/kexec_elf_64.c Philipp Rudo          
2018-04-13   64         ret = kexec_load_purgatory(image, &pbuf);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   65         if (ret) {
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   66                 pr_err("Loading purgatory failed.\n");
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   67                 goto out;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   68         }
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   69  
3be3f61d25e04e arch/powerpc/kernel/kexec_elf_64.c Philipp Rudo          
2018-04-13   70         pr_debug("Loaded purgatory at 0x%lx\n", pbuf.mem);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   71  
1a1cf93c200581 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   72         /* Load additional segments needed for panic kernel */
1a1cf93c200581 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   73         if (image->type == KEXEC_TYPE_CRASH) {
1a1cf93c200581 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   74                 ret = load_crashdump_segments_ppc64(image, 
&kbuf);
1a1cf93c200581 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   75                 if (ret) {
1a1cf93c200581 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   76                         pr_err("Failed to load kdump kernel 
segments\n");
1a1cf93c200581 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   77                         goto out;
1a1cf93c200581 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   78                 }
cb350c1f1f867d arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   79  
cb350c1f1f867d arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   80                 /* Setup cmdline for kdump kernel case */
cb350c1f1f867d arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   81                 modified_cmdline = setup_kdump_cmdline(image, 
cmdline,
cb350c1f1f867d arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   82                                                        
cmdline_len);
cb350c1f1f867d arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   83                 if (!modified_cmdline) {
cb350c1f1f867d arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   84                         pr_err("Setting up cmdline for kdump 
kernel failed\n");
cb350c1f1f867d arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   85                         ret = -EINVAL;
cb350c1f1f867d arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   86                         goto out;
cb350c1f1f867d arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   87                 }
cb350c1f1f867d arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   88                 cmdline = modified_cmdline;
1a1cf93c200581 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   89         }
1a1cf93c200581 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29   90  
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   91         if (initrd != NULL) {
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   92                 kbuf.buffer = initrd;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   93                 kbuf.bufsz = kbuf.memsz = initrd_len;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   94                 kbuf.buf_align = PAGE_SIZE;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   95                 kbuf.top_down = false;
8b909e3548706c arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2019-05-22   96                 kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   97                 ret = kexec_add_buffer(&kbuf);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   98                 if (ret)
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29   99                         goto out;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  100                 initrd_load_addr = kbuf.mem;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  101  
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  102                 pr_debug("Loaded initrd at 0x%lx\n", 
initrd_load_addr);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  103         }
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  104  
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  105         fdt = of_kexec_alloc_and_setup_fdt(image, 
initrd_load_addr,
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  106                                            initrd_len, cmdline,
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  107                                            
kexec_fdt_totalsize_ppc64(image));
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  108         if (!fdt) {
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  109                 pr_err("Error setting up the new device 
tree.\n");
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  110                 ret = -EINVAL;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  111                 goto out;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  112         }
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  113  
19031275a58812 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29  114         ret = setup_new_fdt_ppc64(image, fdt, initrd_load_addr,
19031275a58812 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29  115                                   initrd_len, cmdline);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  116         if (ret)
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  117                 goto out;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  118  
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  119         fdt_pack(fdt);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  120  
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  121         kbuf.buffer = fdt;
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  122         kbuf.bufsz = kbuf.memsz = fdt_totalsize(fdt);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  123         kbuf.buf_align = PAGE_SIZE;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  124         kbuf.top_down = true;
8b909e3548706c arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2019-05-22  125         kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  126         ret = kexec_add_buffer(&kbuf);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  127         if (ret)
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  128                 goto out;
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  129  
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  130         /* FDT will be freed in 
arch_kimage_file_post_load_cleanup */
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  131         image->arch.fdt = fdt;
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  132  
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  133         fdt_load_addr = kbuf.mem;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  134  
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  135         pr_debug("Loaded device tree at 0x%lx\n", 
fdt_load_addr);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  136  
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  137         slave_code = elf_info.buffer + 
elf_info.proghdrs[0].p_offset;
19031275a58812 arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29  138         ret = setup_purgatory_ppc64(image, slave_code, fdt, 
kernel_load_addr,
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  139                                     fdt_load_addr);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  140         if (ret)
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  141                 pr_err("Error setting up the purgatory.\n");
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  142  
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  143  out:
cb350c1f1f867d arch/powerpc/kexec/elf_64.c        Hari Bathini          
2020-07-29  144         kfree(modified_cmdline);
175fca3bf91a11 arch/powerpc/kernel/kexec_elf_64.c Sven Schnelle         
2019-08-23  145         kexec_free_elf_info(&elf_info);
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  146  
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  147         /*
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  148          * Once FDT buffer has been successfully passed to 
kexec_add_buffer(),
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  149          * the FDT buffer address is saved in image->arch.fdt. 
In that case,
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  150          * the memory cannot be freed here in case of any other 
error.
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  151          */
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  152         if (ret && !image->arch.fdt)
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21 @153                 kvfree(fdt);
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  154  
3c985d31ad661a arch/powerpc/kexec/elf_64.c        Rob Herring           
2021-02-21  155         return ret ? ERR_PTR(ret) : NULL;
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  156  }
a0458284f0625a arch/powerpc/kernel/kexec_elf_64.c Thiago Jung Bauermann 
2016-11-29  157  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to