mm/vmscan.c:6585:66: sparse: sparse: Using plain integer as NULL pointer

From: kernel test robot

Date: Fri May 01 2026 - 06:56:09 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 26fd6bff2c050196005312d1d306889220952a99
commit: 874a0a566ede40f3d6062cae8fe1022e616edd1a mm: vmscan: add cgroup IDs to vmscan tracepoints
date: 4 weeks ago
config: m68k-randconfig-r113-20260501 (https://download.01.org/0day-ci/archive/20260501/202605011838.0NbkvDxs-lkp@xxxxxxxxx/config)
compiler: m68k-linux-gcc (GCC) 8.5.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260501/202605011838.0NbkvDxs-lkp@xxxxxxxxx/reproduce)

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
| Fixes: 874a0a566ede ("mm: vmscan: add cgroup IDs to vmscan tracepoints")
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605011838.0NbkvDxs-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> mm/vmscan.c:6585:66: sparse: sparse: Using plain integer as NULL pointer
mm/vmscan.c:6589:58: sparse: sparse: Using plain integer as NULL pointer

vim +6585 mm/vmscan.c

6551
6552 unsigned long try_to_free_pages(struct zonelist *zonelist, int order,
6553 gfp_t gfp_mask, nodemask_t *nodemask)
6554 {
6555 unsigned long nr_reclaimed;
6556 struct scan_control sc = {
6557 .nr_to_reclaim = SWAP_CLUSTER_MAX,
6558 .gfp_mask = current_gfp_context(gfp_mask),
6559 .reclaim_idx = gfp_zone(gfp_mask),
6560 .order = order,
6561 .nodemask = nodemask,
6562 .priority = DEF_PRIORITY,
6563 .may_writepage = 1,
6564 .may_unmap = 1,
6565 .may_swap = 1,
6566 };
6567
6568 /*
6569 * scan_control uses s8 fields for order, priority, and reclaim_idx.
6570 * Confirm they are large enough for max values.
6571 */
6572 BUILD_BUG_ON(MAX_PAGE_ORDER >= S8_MAX);
6573 BUILD_BUG_ON(DEF_PRIORITY > S8_MAX);
6574 BUILD_BUG_ON(MAX_NR_ZONES > S8_MAX);
6575
6576 /*
6577 * Do not enter reclaim if fatal signal was delivered while throttled.
6578 * 1 is returned so that the page allocator does not OOM kill at this
6579 * point.
6580 */
6581 if (throttle_direct_reclaim(sc.gfp_mask, zonelist, nodemask))
6582 return 1;
6583
6584 set_task_reclaim_state(current, &sc.reclaim_state);
> 6585 trace_mm_vmscan_direct_reclaim_begin(sc.gfp_mask, order, 0);
6586
6587 nr_reclaimed = do_try_to_free_pages(zonelist, &sc);
6588
6589 trace_mm_vmscan_direct_reclaim_end(nr_reclaimed, 0);
6590 set_task_reclaim_state(current, NULL);
6591
6592 return nr_reclaimed;
6593 }
6594

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