* [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.