Hi steven,

kernel test robot noticed the following build warnings:

https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/steven-chen/ima-copy-only-complete-measurement-records-across-kexec/20250305-031719
base:   
https://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git 
next-integrity
patch link:    
https://lore.kernel.org/r/20250304190351.96975-3-chenste%40linux.microsoft.com
patch subject: [PATCH v9 2/7] kexec: define functions to map and unmap segments
config: x86_64-randconfig-161-20250306 
(https://download.01.org/0day-ci/archive/20250306/[email protected]/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Reported-by: Dan Carpenter <[email protected]>
| Closes: https://lore.kernel.org/r/[email protected]/

smatch warnings:
kernel/kexec_core.c:896 kimage_map_segment() error: uninitialized symbol 
'dest_page_addr'.

vim +/dest_page_addr +896 kernel/kexec_core.c

bf06eab7ae0f04 steven chen 2025-03-04  870  void *kimage_map_segment(struct 
kimage *image,
bf06eab7ae0f04 steven chen 2025-03-04  871                       unsigned long 
addr, unsigned long size)
bf06eab7ae0f04 steven chen 2025-03-04  872  {
bf06eab7ae0f04 steven chen 2025-03-04  873      unsigned long eaddr = addr + 
size;
bf06eab7ae0f04 steven chen 2025-03-04  874      unsigned long src_page_addr, 
dest_page_addr;
bf06eab7ae0f04 steven chen 2025-03-04  875      unsigned int npages;
bf06eab7ae0f04 steven chen 2025-03-04  876      struct page **src_pages;
bf06eab7ae0f04 steven chen 2025-03-04  877      int i;
bf06eab7ae0f04 steven chen 2025-03-04  878      kimage_entry_t *ptr, entry;
bf06eab7ae0f04 steven chen 2025-03-04  879      void *vaddr = NULL;
bf06eab7ae0f04 steven chen 2025-03-04  880  
bf06eab7ae0f04 steven chen 2025-03-04  881      /*
bf06eab7ae0f04 steven chen 2025-03-04  882       * Collect the source pages and 
map them in a contiguous VA range.
bf06eab7ae0f04 steven chen 2025-03-04  883       */
bf06eab7ae0f04 steven chen 2025-03-04  884      npages = PFN_UP(eaddr) - 
PFN_DOWN(addr);
bf06eab7ae0f04 steven chen 2025-03-04  885      src_pages = 
kmalloc_array(npages, sizeof(*src_pages), GFP_KERNEL);
bf06eab7ae0f04 steven chen 2025-03-04  886      if (!src_pages) {
bf06eab7ae0f04 steven chen 2025-03-04  887              pr_err("Could not 
allocate ima pages array.\n");
bf06eab7ae0f04 steven chen 2025-03-04  888              return NULL;
bf06eab7ae0f04 steven chen 2025-03-04  889      }
bf06eab7ae0f04 steven chen 2025-03-04  890  
bf06eab7ae0f04 steven chen 2025-03-04  891      i = 0;
bf06eab7ae0f04 steven chen 2025-03-04  892      for_each_kimage_entry(image, 
ptr, entry) {
bf06eab7ae0f04 steven chen 2025-03-04  893              if (entry & 
IND_DESTINATION) {
bf06eab7ae0f04 steven chen 2025-03-04  894                      dest_page_addr 
= entry & PAGE_MASK;

Is the first entry always IND_DESTINATION?

bf06eab7ae0f04 steven chen 2025-03-04  895              } else if (entry & 
IND_SOURCE) {
bf06eab7ae0f04 steven chen 2025-03-04 @896                      if 
(dest_page_addr >= addr && dest_page_addr < eaddr) {
                                                                    
^^^^^^^^^^^^^^
otherwise this is uninitialized

bf06eab7ae0f04 steven chen 2025-03-04  897                              
src_page_addr = entry & PAGE_MASK;
bf06eab7ae0f04 steven chen 2025-03-04  898                              
src_pages[i++] =
bf06eab7ae0f04 steven chen 2025-03-04  899                                      
virt_to_page(__va(src_page_addr));
bf06eab7ae0f04 steven chen 2025-03-04  900                              if (i 
== npages)
bf06eab7ae0f04 steven chen 2025-03-04  901                                      
break;
bf06eab7ae0f04 steven chen 2025-03-04  902                              
dest_page_addr += PAGE_SIZE;
bf06eab7ae0f04 steven chen 2025-03-04  903                      }
bf06eab7ae0f04 steven chen 2025-03-04  904              }
bf06eab7ae0f04 steven chen 2025-03-04  905      }
bf06eab7ae0f04 steven chen 2025-03-04  906  
bf06eab7ae0f04 steven chen 2025-03-04  907      /* Sanity check. */
bf06eab7ae0f04 steven chen 2025-03-04  908      WARN_ON(i < npages);
bf06eab7ae0f04 steven chen 2025-03-04  909  
bf06eab7ae0f04 steven chen 2025-03-04  910      vaddr = vmap(src_pages, npages, 
VM_MAP, PAGE_KERNEL);
bf06eab7ae0f04 steven chen 2025-03-04  911      kfree(src_pages);
bf06eab7ae0f04 steven chen 2025-03-04  912  
bf06eab7ae0f04 steven chen 2025-03-04  913      if (!vaddr)
bf06eab7ae0f04 steven chen 2025-03-04  914              pr_err("Could not map 
ima buffer.\n");
bf06eab7ae0f04 steven chen 2025-03-04  915  
bf06eab7ae0f04 steven chen 2025-03-04  916      return vaddr;
bf06eab7ae0f04 steven chen 2025-03-04  917  }

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


Reply via email to