Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Harry Yoo (Oracle)" <harry@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [harry:kvfree-rcu-improvements-rfc-v2r1-wip 4/9] mm/slab_common.c:1352:16: error: call to undeclared function 'IRQ_WORK_INIT'; ISO C99 and later do not support implicit function declarations
Date: Sun, 03 May 2026 12:01:06 +0800	[thread overview]
Message-ID: <202605031137.1PajP3OI-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/harry/linux.git kvfree-rcu-improvements-rfc-v2r1-wip
head:   1e4fd024c798fbeff0b5a3c5f55cdcf710367c59
commit: 56d22ff0926080094a3df57e64b2aa87c9e1433d [4/9] mm/slab: introduce kfree_rcu_nolock()
config: s390-allnoconfig (https://download.01.org/0day-ci/archive/20260503/202605031137.1PajP3OI-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 5bac06718f502014fade905512f1d26d578a18f3)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260503/202605031137.1PajP3OI-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/202605031137.1PajP3OI-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

>> mm/slab_common.c:1352:16: error: call to undeclared function 'IRQ_WORK_INIT'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1352 |         .defer_free = IRQ_WORK_INIT(defer_kfree_rcu_irq_work_fn),
         |                       ^
>> mm/slab_common.c:1354:3: error: call to undeclared function 'IRQ_WORK_INIT_LAZY'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1354 |                 IRQ_WORK_INIT_LAZY(sched_delayed_monitor_irq_work_fn),
         |                 ^
>> mm/slab_common.c:1352:16: error: incompatible integer to pointer conversion initializing 'struct llist_node *' with an expression of type 'int' [-Wint-conversion]
    1352 |         .defer_free = IRQ_WORK_INIT(defer_kfree_rcu_irq_work_fn),
         |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> mm/slab_common.c:1352:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    1352 |         .defer_free = IRQ_WORK_INIT(defer_kfree_rcu_irq_work_fn),
         |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                       {                                         }
>> mm/slab_common.c:1352:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    1352 |         .defer_free = IRQ_WORK_INIT(defer_kfree_rcu_irq_work_fn),
         |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                       {                                         }
>> mm/slab_common.c:1352:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    1352 |         .defer_free = IRQ_WORK_INIT(defer_kfree_rcu_irq_work_fn),
         |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                       {                                         }
   mm/slab_common.c:1354:3: error: incompatible integer to pointer conversion initializing 'struct llist_node *' with an expression of type 'int' [-Wint-conversion]
    1354 |                 IRQ_WORK_INIT_LAZY(sched_delayed_monitor_irq_work_fn),
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   mm/slab_common.c:1354:3: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    1354 |                 IRQ_WORK_INIT_LAZY(sched_delayed_monitor_irq_work_fn),
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                 {                                                    }
   mm/slab_common.c:1354:3: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    1354 |                 IRQ_WORK_INIT_LAZY(sched_delayed_monitor_irq_work_fn),
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                 {                                                    }
   mm/slab_common.c:1354:3: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    1354 |                 IRQ_WORK_INIT_LAZY(sched_delayed_monitor_irq_work_fn),
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                 {                                                    }
   mm/slab_common.c:1356:3: error: incompatible integer to pointer conversion initializing 'struct llist_node *' with an expression of type 'int' [-Wint-conversion]
    1356 |                 IRQ_WORK_INIT_LAZY(run_page_cache_worker_irq_work_fn),
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   mm/slab_common.c:1356:3: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    1356 |                 IRQ_WORK_INIT_LAZY(run_page_cache_worker_irq_work_fn),
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                 {                                                    }
   mm/slab_common.c:1356:3: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    1356 |                 IRQ_WORK_INIT_LAZY(run_page_cache_worker_irq_work_fn),
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                 {                                                    }
   mm/slab_common.c:1356:3: warning: suggest braces around initialization of subobject [-Wmissing-braces]
    1356 |                 IRQ_WORK_INIT_LAZY(run_page_cache_worker_irq_work_fn),
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                 {                                                    }
>> mm/slab_common.c:1352:16: error: initializer element is not a compile-time constant
    1352 |         .defer_free = IRQ_WORK_INIT(defer_kfree_rcu_irq_work_fn),
         |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> mm/slab_common.c:1378:3: error: call to undeclared function 'irq_work_sync'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1378 |                 irq_work_sync(&per_cpu_ptr(&krc, cpu)->defer_free);
         |                 ^
>> mm/slab_common.c:1785:5: error: call to undeclared function 'irq_work_queue'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1785 |                                 irq_work_queue(&krcp->sched_delayed_monitor);
         |                                 ^
   mm/slab_common.c:1793:3: error: call to undeclared function 'irq_work_queue'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1793 |                 irq_work_queue(&krcp->sched_delayed_monitor);
         |                 ^
   mm/slab_common.c:2066:4: error: call to undeclared function 'irq_work_queue'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    2066 |                         irq_work_queue(&krcp->run_page_cache_worker);
         |                         ^
   mm/slab_common.c:2185:3: error: call to undeclared function 'irq_work_queue'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    2185 |                 irq_work_queue(&krcp->defer_free);
         |                 ^
   9 warnings and 11 errors generated.


vim +/IRQ_WORK_INIT +1352 mm/slab_common.c

  1348	
  1349	static DEFINE_PER_CPU(struct kfree_rcu_cpu, krc) = {
  1350		.lock = __RAW_SPIN_LOCK_UNLOCKED(krc.lock),
  1351		.defer_head = LLIST_HEAD_INIT(defer_head),
> 1352		.defer_free = IRQ_WORK_INIT(defer_kfree_rcu_irq_work_fn),
  1353		.sched_delayed_monitor =
> 1354			IRQ_WORK_INIT_LAZY(sched_delayed_monitor_irq_work_fn),
  1355		.run_page_cache_worker =
  1356			IRQ_WORK_INIT_LAZY(run_page_cache_worker_irq_work_fn),
  1357	};
  1358	#else
  1359	struct kfree_rcu_cpu {
  1360		struct llist_head defer_head;
  1361		struct irq_work defer_free;
  1362	};
  1363	
  1364	static void defer_kfree_rcu_irq_work_fn(struct irq_work *work);
  1365	
  1366	static DEFINE_PER_CPU(struct kfree_rcu_cpu, krc) = {
  1367		.defer_head = LLIST_HEAD_INIT(defer_head),
  1368		.defer_free = IRQ_WORK_INIT(defer_kfree_rcu_irq_work_fn),
  1369	};
  1370	#endif
  1371	
  1372	/* Wait for deferred work from kfree_rcu_nolock() */
  1373	void defer_kvfree_rcu_barrier(void)
  1374	{
  1375		int cpu;
  1376	
  1377		for_each_possible_cpu(cpu)
> 1378			irq_work_sync(&per_cpu_ptr(&krc, cpu)->defer_free);
  1379	}
  1380	

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

                 reply	other threads:[~2026-05-03  4:02 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202605031137.1PajP3OI-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=harry@kernel.org \
    --cc=llvm@lists.linux.dev \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox