From: kernel test robot <lkp@intel.com>
To: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
Linux Memory Management List <linux-mm@kvack.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: [linux-next:master 7459/8237] mm/shmem.c:2354:8: warning: variable 'page' is uninitialized when used here
Date: Wed, 4 May 2022 01:22:52 +0800 [thread overview]
Message-ID: <202205040121.S0ILU2a8-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 44a2f39e611ac0bc1f17c288a583d7f2e5684aa7
commit: b0bb08b2d5f399369a906eff0287e64b531881d8 [7459/8237] mm/shmem: turn shmem_alloc_page() into shmem_alloc_folio()
config: x86_64-randconfig-a001 (https://download.01.org/0day-ci/archive/20220504/202205040121.S0ILU2a8-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 363b3a645a1e30011cc8da624f13dac5fd915628)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=b0bb08b2d5f399369a906eff0287e64b531881d8
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout b0bb08b2d5f399369a906eff0287e64b531881d8
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> mm/shmem.c:2354:8: warning: variable 'page' is uninitialized when used here [-Wuninitialized]
if (!page)
^~~~
mm/shmem.c:2335:19: note: initialize the variable 'page' to silence this warning
struct page *page;
^
= NULL
1 warning generated.
vim +/page +2354 mm/shmem.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 2318
3460f6e5c1ed94 Axel Rasmussen 2021-06-30 2319 #ifdef CONFIG_USERFAULTFD
3460f6e5c1ed94 Axel Rasmussen 2021-06-30 2320 int shmem_mfill_atomic_pte(struct mm_struct *dst_mm,
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2321 pmd_t *dst_pmd,
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2322 struct vm_area_struct *dst_vma,
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2323 unsigned long dst_addr,
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2324 unsigned long src_addr,
0b51a78cb242cd Peter Xu 2022-04-29 2325 bool zeropage, bool wp_copy,
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2326 struct page **pagep)
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2327 {
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2328 struct inode *inode = file_inode(dst_vma->vm_file);
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2329 struct shmem_inode_info *info = SHMEM_I(inode);
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2330 struct address_space *mapping = inode->i_mapping;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2331 gfp_t gfp = mapping_gfp_mask(mapping);
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2332 pgoff_t pgoff = linear_page_index(dst_vma, dst_addr);
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2333 void *page_kaddr;
9a44f3462edc49 Matthew Wilcox (Oracle 2022-04-29 2334) struct folio *folio;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2335 struct page *page;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2336 int ret;
3460f6e5c1ed94 Axel Rasmussen 2021-06-30 2337 pgoff_t max_off;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2338
7ed9d238c7dbb1 Axel Rasmussen 2021-05-14 2339 if (!shmem_inode_acct_block(inode, 1)) {
7ed9d238c7dbb1 Axel Rasmussen 2021-05-14 2340 /*
7ed9d238c7dbb1 Axel Rasmussen 2021-05-14 2341 * We may have got a page, returned -ENOENT triggering a retry,
7ed9d238c7dbb1 Axel Rasmussen 2021-05-14 2342 * and now we find ourselves with -ENOMEM. Release the page, to
7ed9d238c7dbb1 Axel Rasmussen 2021-05-14 2343 * avoid a BUG_ON in our caller.
7ed9d238c7dbb1 Axel Rasmussen 2021-05-14 2344 */
7ed9d238c7dbb1 Axel Rasmussen 2021-05-14 2345 if (unlikely(*pagep)) {
7ed9d238c7dbb1 Axel Rasmussen 2021-05-14 2346 put_page(*pagep);
7ed9d238c7dbb1 Axel Rasmussen 2021-05-14 2347 *pagep = NULL;
7ed9d238c7dbb1 Axel Rasmussen 2021-05-14 2348 }
7d64ae3ab648a9 Axel Rasmussen 2021-06-30 2349 return -ENOMEM;
7ed9d238c7dbb1 Axel Rasmussen 2021-05-14 2350 }
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2351
cb658a453b9327 Andrea Arcangeli 2017-02-22 2352 if (!*pagep) {
7d64ae3ab648a9 Axel Rasmussen 2021-06-30 2353 ret = -ENOMEM;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 @2354 if (!page)
0f0796945614b7 Mike Rapoport 2017-09-06 2355 goto out_unacct_blocks;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2356
3460f6e5c1ed94 Axel Rasmussen 2021-06-30 2357 if (!zeropage) { /* COPY */
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2358 page_kaddr = kmap_atomic(page);
8d10396342063c Mike Rapoport 2017-09-06 2359 ret = copy_from_user(page_kaddr,
8d10396342063c Mike Rapoport 2017-09-06 2360 (const void __user *)src_addr,
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2361 PAGE_SIZE);
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2362 kunmap_atomic(page_kaddr);
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2363
c1e8d7c6a7a682 Michel Lespinasse 2020-06-08 2364 /* fallback to copy_from_user outside mmap_lock */
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2365 if (unlikely(ret)) {
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2366 *pagep = page;
7d64ae3ab648a9 Axel Rasmussen 2021-06-30 2367 ret = -ENOENT;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2368 /* don't free the page */
7d64ae3ab648a9 Axel Rasmussen 2021-06-30 2369 goto out_unacct_blocks;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2370 }
19b482c29b6f38 Muchun Song 2022-03-22 2371
19b482c29b6f38 Muchun Song 2022-03-22 2372 flush_dcache_page(page);
3460f6e5c1ed94 Axel Rasmussen 2021-06-30 2373 } else { /* ZEROPAGE */
19b482c29b6f38 Muchun Song 2022-03-22 2374 clear_user_highpage(page, dst_addr);
8d10396342063c Mike Rapoport 2017-09-06 2375 }
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2376 } else {
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2377 page = *pagep;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2378 *pagep = NULL;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2379 }
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2380
3460f6e5c1ed94 Axel Rasmussen 2021-06-30 2381 VM_BUG_ON(PageLocked(page));
3460f6e5c1ed94 Axel Rasmussen 2021-06-30 2382 VM_BUG_ON(PageSwapBacked(page));
9cc90c664a65f9 Andrea Arcangeli 2017-02-22 2383 __SetPageLocked(page);
9cc90c664a65f9 Andrea Arcangeli 2017-02-22 2384 __SetPageSwapBacked(page);
a425d3584e7e69 Andrea Arcangeli 2017-02-22 2385 __SetPageUptodate(page);
9cc90c664a65f9 Andrea Arcangeli 2017-02-22 2386
e2a50c1f64145a Andrea Arcangeli 2018-11-30 2387 ret = -EFAULT;
e2a50c1f64145a Andrea Arcangeli 2018-11-30 2388 max_off = DIV_ROUND_UP(i_size_read(inode), PAGE_SIZE);
3460f6e5c1ed94 Axel Rasmussen 2021-06-30 2389 if (unlikely(pgoff >= max_off))
e2a50c1f64145a Andrea Arcangeli 2018-11-30 2390 goto out_release;
e2a50c1f64145a Andrea Arcangeli 2018-11-30 2391
9a44f3462edc49 Matthew Wilcox (Oracle 2022-04-29 2392) folio = page_folio(page);
9a44f3462edc49 Matthew Wilcox (Oracle 2022-04-29 2393) ret = shmem_add_to_page_cache(folio, mapping, pgoff, NULL,
3fea5a499d57de Johannes Weiner 2020-06-03 2394 gfp & GFP_RECLAIM_MASK, dst_mm);
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2395 if (ret)
3fea5a499d57de Johannes Weiner 2020-06-03 2396 goto out_release;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2397
7d64ae3ab648a9 Axel Rasmussen 2021-06-30 2398 ret = mfill_atomic_install_pte(dst_mm, dst_pmd, dst_vma, dst_addr,
0b51a78cb242cd Peter Xu 2022-04-29 2399 page, true, wp_copy);
7d64ae3ab648a9 Axel Rasmussen 2021-06-30 2400 if (ret)
7d64ae3ab648a9 Axel Rasmussen 2021-06-30 2401 goto out_delete_from_cache;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2402
94b7cc01da5a3c Yang Shi 2020-04-20 2403 spin_lock_irq(&info->lock);
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2404 info->alloced++;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2405 inode->i_blocks += BLOCKS_PER_PAGE;
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2406 shmem_recalc_inode(inode);
94b7cc01da5a3c Yang Shi 2020-04-20 2407 spin_unlock_irq(&info->lock);
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2408
e2a50c1f64145a Andrea Arcangeli 2018-11-30 2409 unlock_page(page);
7d64ae3ab648a9 Axel Rasmussen 2021-06-30 2410 return 0;
7d64ae3ab648a9 Axel Rasmussen 2021-06-30 2411 out_delete_from_cache:
e2a50c1f64145a Andrea Arcangeli 2018-11-30 2412 delete_from_page_cache(page);
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2413 out_release:
9cc90c664a65f9 Andrea Arcangeli 2017-02-22 2414 unlock_page(page);
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2415 put_page(page);
4c27fe4c4c84f3 Mike Rapoport 2017-02-22 2416 out_unacct_blocks:
0f0796945614b7 Mike Rapoport 2017-09-06 2417 shmem_inode_unacct_blocks(inode, 1);
7d64ae3ab648a9 Axel Rasmussen 2021-06-30 2418 return ret;
8d10396342063c Mike Rapoport 2017-09-06 2419 }
3460f6e5c1ed94 Axel Rasmussen 2021-06-30 2420 #endif /* CONFIG_USERFAULTFD */
8d10396342063c Mike Rapoport 2017-09-06 2421
:::::: The code at line 2354 was first introduced by commit
:::::: 4c27fe4c4c84f3afd504ecff2420cc1ad420d38e userfaultfd: shmem: add shmem_mcopy_atomic_pte for userfaultfd support
:::::: TO: Mike Rapoport <rppt@linux.vnet.ibm.com>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
reply other threads:[~2022-05-03 17:23 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202205040121.S0ILU2a8-lkp@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=kbuild-all@lists.01.org \
--cc=linux-mm@kvack.org \
--cc=llvm@lists.linux.dev \
--cc=willy@infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).