All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev, Yadong Qi <yadong.qi@linux.alibaba.com>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	Huang Ying <ying.huang@linux.alibaba.com>
Subject: [akpm-mm:mm-new 114/114] mm/vmalloc.c:191 vmap_pmd_range() error: uninitialized symbol 'err'.
Date: Tue, 14 Oct 2025 11:28:06 +0300	[thread overview]
Message-ID: <202510110050.VG9YKMRK-lkp@intel.com> (raw)

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
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 <dan.carpenter@linaro.org>
| 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  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;

Is it possible to hit the continue on every iteration through the loop?

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;

I always feel like these are better as a "return ret;" anyway.  Then it's
just one line to read instead of needing to "break; ... return err;".
Twice as fast to read one line vs two lines.

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  }

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



WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [akpm-mm:mm-new 114/114] mm/vmalloc.c:191 vmap_pmd_range() error: uninitialized symbol 'err'.
Date: Sat, 11 Oct 2025 00:56:14 +0800	[thread overview]
Message-ID: <202510110050.VG9YKMRK-lkp@intel.com> (raw)

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

             reply	other threads:[~2025-10-14  8:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-10 16:56 kernel test robot [this message]
2025-10-14  8:28 ` [akpm-mm:mm-new 114/114] mm/vmalloc.c:191 vmap_pmd_range() error: uninitialized symbol 'err' Dan Carpenter
2025-10-14  9:27 ` yadong.qi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202510110050.VG9YKMRK-lkp@intel.com \
    --to=dan.carpenter@linaro.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=lkp@intel.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=oe-kbuild@lists.linux.dev \
    --cc=yadong.qi@linux.alibaba.com \
    --cc=ying.huang@linux.alibaba.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.