All of lore.kernel.org
 help / color / mirror / Atom feed
* [akpm-mm:mm-new 114/114] mm/vmalloc.c:191 vmap_pmd_range() error: uninitialized symbol 'err'.
@ 2025-10-14  8:28 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2025-10-10 16:56 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Yadong Qi <yadong.qi@linux.alibaba.com>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>
CC: Huang Ying <ying.huang@linux.alibaba.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-new
head:   dbf0247637dd0601a462793035bdd0b416b30e36
commit: dbf0247637dd0601a462793035bdd0b416b30e36 [114/114] mm: vmalloc: WARN_ON if mapping size is not PAGE_SIZE aligned
:::::: branch date: 13 hours ago
:::::: commit date: 13 hours ago
config: sparc-randconfig-r071-20251010 (https://download.01.org/0day-ci/archive/20251011/202510110050.VG9YKMRK-lkp@intel.com/config)
compiler: sparc-linux-gcc (GCC) 8.5.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 <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202510110050.VG9YKMRK-lkp@intel.com/

smatch warnings:
mm/vmalloc.c:191 vmap_pmd_range() error: uninitialized symbol 'err'.
mm/vmalloc.c:243 vmap_pud_range() error: uninitialized symbol 'err'.
mm/vmalloc.c:295 vmap_p4d_range() error: uninitialized symbol 'err'.

vim +/err +191 mm/vmalloc.c

5e9e3d777b99aa Nicholas Piggin 2021-04-29  166  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  167  static int vmap_pmd_range(pud_t *pud, unsigned long addr, unsigned long end,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  168  			phys_addr_t phys_addr, pgprot_t prot,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  169  			unsigned int max_page_shift, pgtbl_mod_mask *mask)
5e9e3d777b99aa Nicholas Piggin 2021-04-29  170  {
5e9e3d777b99aa Nicholas Piggin 2021-04-29  171  	pmd_t *pmd;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  172  	unsigned long next;
dbf0247637dd06 Yadong Qi       2025-10-10  173  	int err;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  174  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  175  	pmd = pmd_alloc_track(&init_mm, pud, addr, mask);
5e9e3d777b99aa Nicholas Piggin 2021-04-29  176  	if (!pmd)
5e9e3d777b99aa Nicholas Piggin 2021-04-29  177  		return -ENOMEM;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  178  	do {
5e9e3d777b99aa Nicholas Piggin 2021-04-29  179  		next = pmd_addr_end(addr, end);
5e9e3d777b99aa Nicholas Piggin 2021-04-29  180  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  181  		if (vmap_try_huge_pmd(pmd, addr, next, phys_addr, prot,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  182  					max_page_shift)) {
5e9e3d777b99aa Nicholas Piggin 2021-04-29  183  			*mask |= PGTBL_PMD_MODIFIED;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  184  			continue;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  185  		}
5e9e3d777b99aa Nicholas Piggin 2021-04-29  186  
dbf0247637dd06 Yadong Qi       2025-10-10  187  		err = vmap_pte_range(pmd, addr, next, phys_addr, prot, max_page_shift, mask);
dbf0247637dd06 Yadong Qi       2025-10-10  188  		if (err)
dbf0247637dd06 Yadong Qi       2025-10-10  189  			break;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  190  	} while (pmd++, phys_addr += (next - addr), addr = next, addr != end);
dbf0247637dd06 Yadong Qi       2025-10-10 @191  	return err;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  192  }
5e9e3d777b99aa Nicholas Piggin 2021-04-29  193  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  194  static int vmap_try_huge_pud(pud_t *pud, unsigned long addr, unsigned long end,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  195  			phys_addr_t phys_addr, pgprot_t prot,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  196  			unsigned int max_page_shift)
5e9e3d777b99aa Nicholas Piggin 2021-04-29  197  {
5e9e3d777b99aa Nicholas Piggin 2021-04-29  198  	if (max_page_shift < PUD_SHIFT)
5e9e3d777b99aa Nicholas Piggin 2021-04-29  199  		return 0;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  200  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  201  	if (!arch_vmap_pud_supported(prot))
5e9e3d777b99aa Nicholas Piggin 2021-04-29  202  		return 0;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  203  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  204  	if ((end - addr) != PUD_SIZE)
5e9e3d777b99aa Nicholas Piggin 2021-04-29  205  		return 0;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  206  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  207  	if (!IS_ALIGNED(addr, PUD_SIZE))
5e9e3d777b99aa Nicholas Piggin 2021-04-29  208  		return 0;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  209  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  210  	if (!IS_ALIGNED(phys_addr, PUD_SIZE))
5e9e3d777b99aa Nicholas Piggin 2021-04-29  211  		return 0;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  212  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  213  	if (pud_present(*pud) && !pud_free_pmd_page(pud, addr))
5e9e3d777b99aa Nicholas Piggin 2021-04-29  214  		return 0;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  215  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  216  	return pud_set_huge(pud, phys_addr, prot);
5e9e3d777b99aa Nicholas Piggin 2021-04-29  217  }
5e9e3d777b99aa Nicholas Piggin 2021-04-29  218  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  219  static int vmap_pud_range(p4d_t *p4d, unsigned long addr, unsigned long end,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  220  			phys_addr_t phys_addr, pgprot_t prot,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  221  			unsigned int max_page_shift, pgtbl_mod_mask *mask)
5e9e3d777b99aa Nicholas Piggin 2021-04-29  222  {
5e9e3d777b99aa Nicholas Piggin 2021-04-29  223  	pud_t *pud;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  224  	unsigned long next;
dbf0247637dd06 Yadong Qi       2025-10-10  225  	int err;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  226  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  227  	pud = pud_alloc_track(&init_mm, p4d, addr, mask);
5e9e3d777b99aa Nicholas Piggin 2021-04-29  228  	if (!pud)
5e9e3d777b99aa Nicholas Piggin 2021-04-29  229  		return -ENOMEM;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  230  	do {
5e9e3d777b99aa Nicholas Piggin 2021-04-29  231  		next = pud_addr_end(addr, end);
5e9e3d777b99aa Nicholas Piggin 2021-04-29  232  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  233  		if (vmap_try_huge_pud(pud, addr, next, phys_addr, prot,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  234  					max_page_shift)) {
5e9e3d777b99aa Nicholas Piggin 2021-04-29  235  			*mask |= PGTBL_PUD_MODIFIED;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  236  			continue;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  237  		}
5e9e3d777b99aa Nicholas Piggin 2021-04-29  238  
dbf0247637dd06 Yadong Qi       2025-10-10  239  		err = vmap_pmd_range(pud, addr, next, phys_addr, prot, max_page_shift, mask);
dbf0247637dd06 Yadong Qi       2025-10-10  240  		if (err)
dbf0247637dd06 Yadong Qi       2025-10-10  241  			break;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  242  	} while (pud++, phys_addr += (next - addr), addr = next, addr != end);
dbf0247637dd06 Yadong Qi       2025-10-10 @243  	return err;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  244  }
5e9e3d777b99aa Nicholas Piggin 2021-04-29  245  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  246  static int vmap_try_huge_p4d(p4d_t *p4d, unsigned long addr, unsigned long end,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  247  			phys_addr_t phys_addr, pgprot_t prot,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  248  			unsigned int max_page_shift)
5e9e3d777b99aa Nicholas Piggin 2021-04-29  249  {
5e9e3d777b99aa Nicholas Piggin 2021-04-29  250  	if (max_page_shift < P4D_SHIFT)
5e9e3d777b99aa Nicholas Piggin 2021-04-29  251  		return 0;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  252  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  253  	if (!arch_vmap_p4d_supported(prot))
5e9e3d777b99aa Nicholas Piggin 2021-04-29  254  		return 0;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  255  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  256  	if ((end - addr) != P4D_SIZE)
5e9e3d777b99aa Nicholas Piggin 2021-04-29  257  		return 0;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  258  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  259  	if (!IS_ALIGNED(addr, P4D_SIZE))
5e9e3d777b99aa Nicholas Piggin 2021-04-29  260  		return 0;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  261  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  262  	if (!IS_ALIGNED(phys_addr, P4D_SIZE))
5e9e3d777b99aa Nicholas Piggin 2021-04-29  263  		return 0;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  264  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  265  	if (p4d_present(*p4d) && !p4d_free_pud_page(p4d, addr))
5e9e3d777b99aa Nicholas Piggin 2021-04-29  266  		return 0;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  267  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  268  	return p4d_set_huge(p4d, phys_addr, prot);
5e9e3d777b99aa Nicholas Piggin 2021-04-29  269  }
5e9e3d777b99aa Nicholas Piggin 2021-04-29  270  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  271  static int vmap_p4d_range(pgd_t *pgd, unsigned long addr, unsigned long end,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  272  			phys_addr_t phys_addr, pgprot_t prot,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  273  			unsigned int max_page_shift, pgtbl_mod_mask *mask)
5e9e3d777b99aa Nicholas Piggin 2021-04-29  274  {
5e9e3d777b99aa Nicholas Piggin 2021-04-29  275  	p4d_t *p4d;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  276  	unsigned long next;
dbf0247637dd06 Yadong Qi       2025-10-10  277  	int err;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  278  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  279  	p4d = p4d_alloc_track(&init_mm, pgd, addr, mask);
5e9e3d777b99aa Nicholas Piggin 2021-04-29  280  	if (!p4d)
5e9e3d777b99aa Nicholas Piggin 2021-04-29  281  		return -ENOMEM;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  282  	do {
5e9e3d777b99aa Nicholas Piggin 2021-04-29  283  		next = p4d_addr_end(addr, end);
5e9e3d777b99aa Nicholas Piggin 2021-04-29  284  
5e9e3d777b99aa Nicholas Piggin 2021-04-29  285  		if (vmap_try_huge_p4d(p4d, addr, next, phys_addr, prot,
5e9e3d777b99aa Nicholas Piggin 2021-04-29  286  					max_page_shift)) {
5e9e3d777b99aa Nicholas Piggin 2021-04-29  287  			*mask |= PGTBL_P4D_MODIFIED;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  288  			continue;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  289  		}
5e9e3d777b99aa Nicholas Piggin 2021-04-29  290  
dbf0247637dd06 Yadong Qi       2025-10-10  291  		err = vmap_pud_range(p4d, addr, next, phys_addr, prot, max_page_shift, mask);
dbf0247637dd06 Yadong Qi       2025-10-10  292  		if (err)
dbf0247637dd06 Yadong Qi       2025-10-10  293  			break;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  294  	} while (p4d++, phys_addr += (next - addr), addr = next, addr != end);
dbf0247637dd06 Yadong Qi       2025-10-10 @295  	return err;
5e9e3d777b99aa Nicholas Piggin 2021-04-29  296  }
5e9e3d777b99aa Nicholas Piggin 2021-04-29  297  

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-10-14  9:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-10 16:56 [akpm-mm:mm-new 114/114] mm/vmalloc.c:191 vmap_pmd_range() error: uninitialized symbol 'err' kernel test robot
2025-10-14  8:28 ` Dan Carpenter
2025-10-14  9:27 ` yadong.qi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.