All of lore.kernel.org
 help / color / mirror / Atom feed
* [openeuler:openEuler-1.0-LTS 1739/1739] mm/page_alloc.c:4648:27: sparse: sparse: invalid assignment: &=
@ 2025-07-29 21:43 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2025-07-29 21:43 UTC (permalink / raw)
  To: kernel, Yongqiang Liu; +Cc: oe-kbuild-all

tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   859de5033e15abefcf19935429e6478be97d889a
commit: 875ffd41499ee5a3512da409cbd4c2ffd32b3cfa [1739/1739] mm: Do limit checking after memory allocation for memory reliable
config: arm64-randconfig-r121-20250728 (https://download.01.org/0day-ci/archive/20250730/202507300533.PUdLd0KT-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 8.5.0
reproduce: (https://download.01.org/0day-ci/archive/20250730/202507300533.PUdLd0KT-lkp@intel.com/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
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202507300533.PUdLd0KT-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   mm/page_alloc.c:140:1: sparse: sparse: symbol 'pcpu_drain_mutex' was not declared. Should it be static?
   mm/page_alloc.c:141:1: sparse: sparse: symbol '__pcpu_scope_pcpu_drain' was not declared. Should it be static?
   mm/page_alloc.c: note: in included file (through include/linux/mm.h):
   include/linux/gfp.h:324:27: sparse: sparse: restricted gfp_t degrades to integer
   include/linux/gfp.h:324:27: sparse: sparse: restricted gfp_t degrades to integer
>> mm/page_alloc.c:4648:27: sparse: sparse: invalid assignment: &=
   mm/page_alloc.c:4648:27: sparse:    left side has type restricted gfp_t
   mm/page_alloc.c:4648:27: sparse:    right side has type int
   In file included from mm/page_alloc.c:70:
   mm/page_alloc.c: In function 'deferred_init_memmap':
   include/linux/ktask.h:123:21: warning: cast between incompatible function types from 'int (*)(long unsigned int,  long unsigned int,  struct deferred_args *)' to 'int (*)(void *, void *, void *)' [-Wcast-function-type]
      .kc_thread_func = (ktask_thread_func)(thread_func),      15-                     ^
   include/linux/ktask.h:139:3: note: in expansion of macro 'KTASK_CTL_INITIALIZER'
      KTASK_CTL_INITIALIZER(thread_func, func_arg, min_chunk_size) 18-   ^~~~~~~~~~~~~~~~~~~~~
   mm/page_alloc.c:1730:3: note: in expansion of macro 'DEFINE_KTASK_CTL'
      DEFINE_KTASK_CTL(ctl, deferred_init_chunk, &args,
      ^~~~~~~~~~~~~~~~
   include/linux/ktask.h:123:21: warning: cast between incompatible function types from 'int (*)(long unsigned int,  long unsigned int,  struct deferred_args *)' to 'int (*)(void *, void *, void *)' [-Wcast-function-type]
      .kc_thread_func = (ktask_thread_func)(thread_func),      24-                     ^
   include/linux/ktask.h:139:3: note: in expansion of macro 'KTASK_CTL_INITIALIZER'
      KTASK_CTL_INITIALIZER(thread_func, func_arg, min_chunk_size) 27-   ^~~~~~~~~~~~~~~~~~~~~
   mm/page_alloc.c:1746:3: note: in expansion of macro 'DEFINE_KTASK_CTL'
      DEFINE_KTASK_CTL(ctl, deferred_free_chunk, &args,
      ^~~~~~~~~~~~~~~~
   mm/page_alloc.c:3083: warning: Function parameter or member 'mt' not described in '__putback_isolated_page'

vim +4648 mm/page_alloc.c

  4606	
  4607	/*
  4608	 * return true means memory allocation need retry and flag ___GFP_RELIABILITY
  4609	 * must be cleared.
  4610	 */
  4611	static inline bool check_after_alloc(gfp_t *gfp_mask, unsigned int order,
  4612					     int preferred_nid, nodemask_t *nodemask,
  4613					     struct page **_page)
  4614	{
  4615		if (!mem_reliable_is_enabled())
  4616			return false;
  4617	
  4618		if (!(*gfp_mask & ___GFP_RELIABILITY))
  4619			return false;
  4620	
  4621		if (!*_page)
  4622			goto out_retry;
  4623	
  4624		if (*gfp_mask & __GFP_NOFAIL)
  4625			goto out;
  4626	
  4627		/* check water mark, reserver mirrored mem for kernel */
  4628		if (!mem_reliable_watermark_ok(1 << order))
  4629			goto out_free_page;
  4630	
  4631		/* percpu counter is not initialized, ignore limit check */
  4632		if (!mem_reliable_counter_initialized())
  4633			goto out;
  4634	
  4635		/* spcial user task, systemd is limited by task_reliable_limit */
  4636		if (((current->flags & PF_RELIABLE) || is_global_init(current)) &&
  4637		    !reliable_mem_limit_check(1 << order))
  4638			goto out_free_page;
  4639	
  4640		goto out;
  4641	
  4642	out_free_page:
  4643		__free_pages(*_page, order);
  4644		*_page = NULL;
  4645	
  4646	out_retry:
  4647		if (reliable_allow_fb_enabled() || is_global_init(current)) {
> 4648			*gfp_mask &= ~___GFP_RELIABILITY;
  4649			return true;
  4650		}
  4651	
  4652		if (*gfp_mask & (__GFP_NORETRY | __GFP_RETRY_MAYFAIL | __GFP_THISNODE))
  4653			goto out;
  4654	
  4655		/* Coredumps can quickly deplete all memory reserves */
  4656		if (current->flags & PF_DUMPCORE)
  4657			goto out;
  4658		/* The OOM killer will not help higher order allocs */
  4659		if (order > PAGE_ALLOC_COSTLY_ORDER)
  4660			goto out;
  4661	
  4662		/* oom here */
  4663		mem_reliable_out_of_memory(*gfp_mask, order, preferred_nid,
  4664					nodemask);
  4665	out:
  4666		return false;
  4667	}
  4668	

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

^ permalink raw reply	[flat|nested] 3+ messages in thread
* [openeuler:openEuler-1.0-LTS 1739/1739] mm/page_alloc.c:4648:27: sparse: sparse: invalid assignment: &=
@ 2025-10-18 23:56 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2025-10-18 23:56 UTC (permalink / raw)
  To: kernel, Yongqiang Liu; +Cc: oe-kbuild-all

tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   e98deea13d81cacd6479edf0de6267118ae7c639
commit: 875ffd41499ee5a3512da409cbd4c2ffd32b3cfa [1739/1739] mm: Do limit checking after memory allocation for memory reliable
config: arm64-randconfig-r121-20250728 (https://download.01.org/0day-ci/archive/20251019/202510190803.oHSjvBlI-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251019/202510190803.oHSjvBlI-lkp@intel.com/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
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202510190803.oHSjvBlI-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   mm/page_alloc.c:140:1: sparse: sparse: symbol 'pcpu_drain_mutex' was not declared. Should it be static?
   mm/page_alloc.c:141:1: sparse: sparse: symbol '__pcpu_scope_pcpu_drain' was not declared. Should it be static?
   mm/page_alloc.c: note: in included file (through include/linux/mm.h):
   include/linux/gfp.h:324:27: sparse: sparse: restricted gfp_t degrades to integer
   include/linux/gfp.h:324:27: sparse: sparse: restricted gfp_t degrades to integer
>> mm/page_alloc.c:4648:27: sparse: sparse: invalid assignment: &=
   mm/page_alloc.c:4648:27: sparse:    left side has type restricted gfp_t
   mm/page_alloc.c:4648:27: sparse:    right side has type int
   In file included from mm/page_alloc.c:70:
   mm/page_alloc.c: In function 'deferred_init_memmap':
   include/linux/ktask.h:123:21: warning: cast between incompatible function types from 'int (*)(long unsigned int,  long unsigned int,  struct deferred_args *)' to 'int (*)(void *, void *, void *)' [-Wcast-function-type]
      .kc_thread_func = (ktask_thread_func)(thread_func),      15-                     ^
   include/linux/ktask.h:139:3: note: in expansion of macro 'KTASK_CTL_INITIALIZER'
      KTASK_CTL_INITIALIZER(thread_func, func_arg, min_chunk_size) 18-   ^~~~~~~~~~~~~~~~~~~~~
   mm/page_alloc.c:1730:3: note: in expansion of macro 'DEFINE_KTASK_CTL'
      DEFINE_KTASK_CTL(ctl, deferred_init_chunk, &args,
      ^~~~~~~~~~~~~~~~
   include/linux/ktask.h:123:21: warning: cast between incompatible function types from 'int (*)(long unsigned int,  long unsigned int,  struct deferred_args *)' to 'int (*)(void *, void *, void *)' [-Wcast-function-type]
      .kc_thread_func = (ktask_thread_func)(thread_func),      24-                     ^
   include/linux/ktask.h:139:3: note: in expansion of macro 'KTASK_CTL_INITIALIZER'
      KTASK_CTL_INITIALIZER(thread_func, func_arg, min_chunk_size) 27-   ^~~~~~~~~~~~~~~~~~~~~
   mm/page_alloc.c:1746:3: note: in expansion of macro 'DEFINE_KTASK_CTL'
      DEFINE_KTASK_CTL(ctl, deferred_free_chunk, &args,
      ^~~~~~~~~~~~~~~~
   mm/page_alloc.c:3083: warning: Function parameter or member 'mt' not described in '__putback_isolated_page'

vim +4648 mm/page_alloc.c

  4606	
  4607	/*
  4608	 * return true means memory allocation need retry and flag ___GFP_RELIABILITY
  4609	 * must be cleared.
  4610	 */
  4611	static inline bool check_after_alloc(gfp_t *gfp_mask, unsigned int order,
  4612					     int preferred_nid, nodemask_t *nodemask,
  4613					     struct page **_page)
  4614	{
  4615		if (!mem_reliable_is_enabled())
  4616			return false;
  4617	
  4618		if (!(*gfp_mask & ___GFP_RELIABILITY))
  4619			return false;
  4620	
  4621		if (!*_page)
  4622			goto out_retry;
  4623	
  4624		if (*gfp_mask & __GFP_NOFAIL)
  4625			goto out;
  4626	
  4627		/* check water mark, reserver mirrored mem for kernel */
  4628		if (!mem_reliable_watermark_ok(1 << order))
  4629			goto out_free_page;
  4630	
  4631		/* percpu counter is not initialized, ignore limit check */
  4632		if (!mem_reliable_counter_initialized())
  4633			goto out;
  4634	
  4635		/* spcial user task, systemd is limited by task_reliable_limit */
  4636		if (((current->flags & PF_RELIABLE) || is_global_init(current)) &&
  4637		    !reliable_mem_limit_check(1 << order))
  4638			goto out_free_page;
  4639	
  4640		goto out;
  4641	
  4642	out_free_page:
  4643		__free_pages(*_page, order);
  4644		*_page = NULL;
  4645	
  4646	out_retry:
  4647		if (reliable_allow_fb_enabled() || is_global_init(current)) {
> 4648			*gfp_mask &= ~___GFP_RELIABILITY;
  4649			return true;
  4650		}
  4651	
  4652		if (*gfp_mask & (__GFP_NORETRY | __GFP_RETRY_MAYFAIL | __GFP_THISNODE))
  4653			goto out;
  4654	
  4655		/* Coredumps can quickly deplete all memory reserves */
  4656		if (current->flags & PF_DUMPCORE)
  4657			goto out;
  4658		/* The OOM killer will not help higher order allocs */
  4659		if (order > PAGE_ALLOC_COSTLY_ORDER)
  4660			goto out;
  4661	
  4662		/* oom here */
  4663		mem_reliable_out_of_memory(*gfp_mask, order, preferred_nid,
  4664					nodemask);
  4665	out:
  4666		return false;
  4667	}
  4668	

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

^ permalink raw reply	[flat|nested] 3+ messages in thread
* [openeuler:openEuler-1.0-LTS 1739/1739] mm/page_alloc.c:4648:27: sparse: sparse: invalid assignment: &=
@ 2025-10-29 19:36 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2025-10-29 19:36 UTC (permalink / raw)
  To: kernel, Yongqiang Liu; +Cc: oe-kbuild-all

tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   1afc352b4572c02bd3b5c9195481f393af060e44
commit: 875ffd41499ee5a3512da409cbd4c2ffd32b3cfa [1739/1739] mm: Do limit checking after memory allocation for memory reliable
config: arm64-randconfig-r121-20250728 (https://download.01.org/0day-ci/archive/20251030/202510300315.AULNBBrr-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251030/202510300315.AULNBBrr-lkp@intel.com/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
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202510300315.AULNBBrr-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   mm/page_alloc.c:140:1: sparse: sparse: symbol 'pcpu_drain_mutex' was not declared. Should it be static?
   mm/page_alloc.c:141:1: sparse: sparse: symbol '__pcpu_scope_pcpu_drain' was not declared. Should it be static?
   mm/page_alloc.c: note: in included file (through include/linux/mm.h):
   include/linux/gfp.h:324:27: sparse: sparse: restricted gfp_t degrades to integer
   include/linux/gfp.h:324:27: sparse: sparse: restricted gfp_t degrades to integer
>> mm/page_alloc.c:4648:27: sparse: sparse: invalid assignment: &=
   mm/page_alloc.c:4648:27: sparse:    left side has type restricted gfp_t
   mm/page_alloc.c:4648:27: sparse:    right side has type int
   In file included from mm/page_alloc.c:70:
   mm/page_alloc.c: In function 'deferred_init_memmap':
   include/linux/ktask.h:123:21: warning: cast between incompatible function types from 'int (*)(long unsigned int,  long unsigned int,  struct deferred_args *)' to 'int (*)(void *, void *, void *)' [-Wcast-function-type]
      .kc_thread_func = (ktask_thread_func)(thread_func),      15-                     ^
   include/linux/ktask.h:139:3: note: in expansion of macro 'KTASK_CTL_INITIALIZER'
      KTASK_CTL_INITIALIZER(thread_func, func_arg, min_chunk_size) 18-   ^~~~~~~~~~~~~~~~~~~~~
   mm/page_alloc.c:1730:3: note: in expansion of macro 'DEFINE_KTASK_CTL'
      DEFINE_KTASK_CTL(ctl, deferred_init_chunk, &args,
      ^~~~~~~~~~~~~~~~
   include/linux/ktask.h:123:21: warning: cast between incompatible function types from 'int (*)(long unsigned int,  long unsigned int,  struct deferred_args *)' to 'int (*)(void *, void *, void *)' [-Wcast-function-type]
      .kc_thread_func = (ktask_thread_func)(thread_func),      24-                     ^
   include/linux/ktask.h:139:3: note: in expansion of macro 'KTASK_CTL_INITIALIZER'
      KTASK_CTL_INITIALIZER(thread_func, func_arg, min_chunk_size) 27-   ^~~~~~~~~~~~~~~~~~~~~
   mm/page_alloc.c:1746:3: note: in expansion of macro 'DEFINE_KTASK_CTL'
      DEFINE_KTASK_CTL(ctl, deferred_free_chunk, &args,
      ^~~~~~~~~~~~~~~~
   mm/page_alloc.c:3083: warning: Function parameter or member 'mt' not described in '__putback_isolated_page'

vim +4648 mm/page_alloc.c

  4606	
  4607	/*
  4608	 * return true means memory allocation need retry and flag ___GFP_RELIABILITY
  4609	 * must be cleared.
  4610	 */
  4611	static inline bool check_after_alloc(gfp_t *gfp_mask, unsigned int order,
  4612					     int preferred_nid, nodemask_t *nodemask,
  4613					     struct page **_page)
  4614	{
  4615		if (!mem_reliable_is_enabled())
  4616			return false;
  4617	
  4618		if (!(*gfp_mask & ___GFP_RELIABILITY))
  4619			return false;
  4620	
  4621		if (!*_page)
  4622			goto out_retry;
  4623	
  4624		if (*gfp_mask & __GFP_NOFAIL)
  4625			goto out;
  4626	
  4627		/* check water mark, reserver mirrored mem for kernel */
  4628		if (!mem_reliable_watermark_ok(1 << order))
  4629			goto out_free_page;
  4630	
  4631		/* percpu counter is not initialized, ignore limit check */
  4632		if (!mem_reliable_counter_initialized())
  4633			goto out;
  4634	
  4635		/* spcial user task, systemd is limited by task_reliable_limit */
  4636		if (((current->flags & PF_RELIABLE) || is_global_init(current)) &&
  4637		    !reliable_mem_limit_check(1 << order))
  4638			goto out_free_page;
  4639	
  4640		goto out;
  4641	
  4642	out_free_page:
  4643		__free_pages(*_page, order);
  4644		*_page = NULL;
  4645	
  4646	out_retry:
  4647		if (reliable_allow_fb_enabled() || is_global_init(current)) {
> 4648			*gfp_mask &= ~___GFP_RELIABILITY;
  4649			return true;
  4650		}
  4651	
  4652		if (*gfp_mask & (__GFP_NORETRY | __GFP_RETRY_MAYFAIL | __GFP_THISNODE))
  4653			goto out;
  4654	
  4655		/* Coredumps can quickly deplete all memory reserves */
  4656		if (current->flags & PF_DUMPCORE)
  4657			goto out;
  4658		/* The OOM killer will not help higher order allocs */
  4659		if (order > PAGE_ALLOC_COSTLY_ORDER)
  4660			goto out;
  4661	
  4662		/* oom here */
  4663		mem_reliable_out_of_memory(*gfp_mask, order, preferred_nid,
  4664					nodemask);
  4665	out:
  4666		return false;
  4667	}
  4668	

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-10-29 19:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-29 21:43 [openeuler:openEuler-1.0-LTS 1739/1739] mm/page_alloc.c:4648:27: sparse: sparse: invalid assignment: &= kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2025-10-18 23:56 kernel test robot
2025-10-29 19:36 kernel test robot

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.