From: kernel test robot <lkp@intel.com>
To: kernel@openeuler.org, Yongqiang Liu <liuyongqiang13@huawei.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [openeuler:openEuler-1.0-LTS 1739/1739] mm/page_alloc.c:4648:27: sparse: sparse: invalid assignment: &=
Date: Sun, 19 Oct 2025 07:56:10 +0800 [thread overview]
Message-ID: <202510190803.oHSjvBlI-lkp@intel.com> (raw)
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
next reply other threads:[~2025-10-18 23:56 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-18 23:56 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-10-29 19:36 [openeuler:openEuler-1.0-LTS 1739/1739] mm/page_alloc.c:4648:27: sparse: sparse: invalid assignment: &= kernel test robot
2025-07-29 21:43 kernel test robot
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=202510190803.oHSjvBlI-lkp@intel.com \
--to=lkp@intel.com \
--cc=kernel@openeuler.org \
--cc=liuyongqiang13@huawei.com \
--cc=oe-kbuild-all@lists.linux.dev \
/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.