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-kernel@vger.kernel.org
Subject: [willy-pagecache:for-next 3/81] mm/huge_memory.c:2380:21: warning: incompatible pointer to integer conversion assigning to 'unsigned long' from 'void *'
Date: Mon, 20 Jun 2022 02:21:01 +0800 [thread overview]
Message-ID: <202206200151.WMsNVIYY-lkp@intel.com> (raw)
tree: git://git.infradead.org/users/willy/pagecache for-next
head: a4483039b0e88f52c72975b99ea131a111b35a8e
commit: ddf632ba3fd866d92f0ec9343984c6b2c18a788c [3/81] mm: Clear page->private when splitting or migrating a page
config: s390-randconfig-r033-20220619 (https://download.01.org/0day-ci/archive/20220620/202206200151.WMsNVIYY-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project af6d2a0b6825e71965f3e2701a63c239fa0ad70f)
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
# install s390 cross compiling tool for clang build
# apt-get install binutils-s390x-linux-gnu
git remote add willy-pagecache git://git.infradead.org/users/willy/pagecache
git fetch --no-tags willy-pagecache for-next
git checkout ddf632ba3fd866d92f0ec9343984c6b2c18a788c
# 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=s390 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> mm/huge_memory.c:2380:21: warning: incompatible pointer to integer conversion assigning to 'unsigned long' from 'void *' [-Wint-conversion]
page_tail->private = NULL;
^ ~~~~
1 warning generated.
vim +2380 mm/huge_memory.c
2338
2339 static void __split_huge_page_tail(struct page *head, int tail,
2340 struct lruvec *lruvec, struct list_head *list)
2341 {
2342 struct page *page_tail = head + tail;
2343
2344 VM_BUG_ON_PAGE(atomic_read(&page_tail->_mapcount) != -1, page_tail);
2345
2346 /*
2347 * Clone page flags before unfreezing refcount.
2348 *
2349 * After successful get_page_unless_zero() might follow flags change,
2350 * for example lock_page() which set PG_waiters.
2351 *
2352 * Note that for mapped sub-pages of an anonymous THP,
2353 * PG_anon_exclusive has been cleared in unmap_page() and is stored in
2354 * the migration entry instead from where remap_page() will restore it.
2355 * We can still have PG_anon_exclusive set on effectively unmapped and
2356 * unreferenced sub-pages of an anonymous THP: we can simply drop
2357 * PG_anon_exclusive (-> PG_mappedtodisk) for these here.
2358 */
2359 page_tail->flags &= ~PAGE_FLAGS_CHECK_AT_PREP;
2360 page_tail->flags |= (head->flags &
2361 ((1L << PG_referenced) |
2362 (1L << PG_swapbacked) |
2363 (1L << PG_swapcache) |
2364 (1L << PG_mlocked) |
2365 (1L << PG_uptodate) |
2366 (1L << PG_active) |
2367 (1L << PG_workingset) |
2368 (1L << PG_locked) |
2369 (1L << PG_unevictable) |
2370 #ifdef CONFIG_64BIT
2371 (1L << PG_arch_2) |
2372 #endif
2373 (1L << PG_dirty)));
2374
2375 /* ->mapping in first tail page is compound_mapcount */
2376 VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
2377 page_tail);
2378 page_tail->mapping = head->mapping;
2379 page_tail->index = head->index + tail;
> 2380 page_tail->private = NULL;
2381
2382 /* Page flags must be visible before we make the page non-compound. */
2383 smp_wmb();
2384
2385 /*
2386 * Clear PageTail before unfreezing page refcount.
2387 *
2388 * After successful get_page_unless_zero() might follow put_page()
2389 * which needs correct compound_head().
2390 */
2391 clear_compound_head(page_tail);
2392
2393 /* Finally unfreeze refcount. Additional reference from page cache. */
2394 page_ref_unfreeze(page_tail, 1 + (!PageAnon(head) ||
2395 PageSwapCache(head)));
2396
2397 if (page_is_young(head))
2398 set_page_young(page_tail);
2399 if (page_is_idle(head))
2400 set_page_idle(page_tail);
2401
2402 page_cpupid_xchg_last(page_tail, page_cpupid_last(head));
2403
2404 /*
2405 * always add to the tail because some iterators expect new
2406 * pages to show after the currently processed elements - e.g.
2407 * migrate_pages
2408 */
2409 lru_add_page_tail(head, page_tail, lruvec, list);
2410 }
2411
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next reply other threads:[~2022-06-19 18:21 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-19 18:21 kernel test robot [this message]
2022-06-19 19:10 ` [willy-pagecache:for-next 3/81] mm/huge_memory.c:2380:21: warning: incompatible pointer to integer conversion assigning to 'unsigned long' from 'void *' Matthew Wilcox
2022-06-19 19:10 ` Matthew Wilcox
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=202206200151.WMsNVIYY-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.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 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.