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
next 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.