Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
* [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
@ 2026-05-03  4:01 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-05-03  4:01 UTC (permalink / raw)
  To: Harry Yoo (Oracle); +Cc: llvm, oe-kbuild-all

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-05-03  4:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-03  4:01 [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 kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox