include/linux/genalloc.h:173: undefined reference to `gen_pool_free_owner'
From: kernel test robot
Date: Sat Aug 15 2026 - 02:03:05 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 2f1baf1fc8929e6c48370be543ad028ac7ad4131
commit: 9eca087deb0b35f3170109a9630a6c5c06c2e222 sched_ext: Sub-allocator over kernel-claimed BPF arena pages
date: 3 months ago
config: parisc-randconfig-001-20260815 (https://download.01.org/0day-ci/archive/20260815/202608151315.tvN3X0Oq-lkp@xxxxxxxxx/config)
compiler: hppa-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260815/202608151315.tvN3X0Oq-lkp@xxxxxxxxx/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
| Fixes: 9eca087deb0b ("sched_ext: Sub-allocator over kernel-claimed BPF arena pages")
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608151315.tvN3X0Oq-lkp@xxxxxxxxx/
All errors (new ones prefixed by >>):
hppa-linux-ld: kernel/sched/build_policy.o: in function `scx_arena_scan_prog':
kernel/sched/ext.c:7937: undefined reference to `bpf_prog_arena'
hppa-linux-ld: kernel/sched/build_policy.o: in function `gen_pool_free':
>> include/linux/genalloc.h:173: undefined reference to `gen_pool_free_owner'
hppa-linux-ld: kernel/sched/build_policy.o: in function `scx_arena_pool_init':
kernel/sched/ext_arena.c:29: undefined reference to `gen_pool_create'
hppa-linux-ld: kernel/sched/build_policy.o: in function `scx_arena_pool_destroy':
kernel/sched/ext_arena.c:57: undefined reference to `gen_pool_for_each_chunk'
hppa-linux-ld: kernel/sched/ext_arena.c:58: undefined reference to `gen_pool_destroy'
hppa-linux-ld: kernel/sched/build_policy.o: in function `gen_pool_alloc_algo':
>> include/linux/genalloc.h:139: undefined reference to `gen_pool_alloc_algo_owner'
hppa-linux-ld: kernel/sched/build_policy.o: in function `gen_pool_free':
>> include/linux/genalloc.h:173: undefined reference to `gen_pool_free_owner'
hppa-linux-ld: kernel/sched/build_policy.o: in function `scx_arena_pool_init':
kernel/sched/ext_arena.c:29: undefined reference to `gen_pool_create'
vim +173 include/linux/genalloc.h
795ee30648c7085 Dan Williams 2019-06-13 135
795ee30648c7085 Dan Williams 2019-06-13 136 static inline unsigned long gen_pool_alloc_algo(struct gen_pool *pool,
795ee30648c7085 Dan Williams 2019-06-13 137 size_t size, genpool_algo_t algo, void *data)
795ee30648c7085 Dan Williams 2019-06-13 138 {
795ee30648c7085 Dan Williams 2019-06-13 @139 return gen_pool_alloc_algo_owner(pool, size, algo, data, NULL);
795ee30648c7085 Dan Williams 2019-06-13 140 }
795ee30648c7085 Dan Williams 2019-06-13 141
795ee30648c7085 Dan Williams 2019-06-13 142 /**
795ee30648c7085 Dan Williams 2019-06-13 143 * gen_pool_alloc - allocate special memory from the pool
795ee30648c7085 Dan Williams 2019-06-13 144 * @pool: pool to allocate from
795ee30648c7085 Dan Williams 2019-06-13 145 * @size: number of bytes to allocate from the pool
795ee30648c7085 Dan Williams 2019-06-13 146 *
795ee30648c7085 Dan Williams 2019-06-13 147 * Allocate the requested number of bytes from the specified pool.
795ee30648c7085 Dan Williams 2019-06-13 148 * Uses the pool allocation function (with first-fit algorithm by default).
795ee30648c7085 Dan Williams 2019-06-13 149 * Can not be used in NMI handler on architectures without
795ee30648c7085 Dan Williams 2019-06-13 150 * NMI-safe cmpxchg implementation.
795ee30648c7085 Dan Williams 2019-06-13 151 */
795ee30648c7085 Dan Williams 2019-06-13 152 static inline unsigned long gen_pool_alloc(struct gen_pool *pool, size_t size)
795ee30648c7085 Dan Williams 2019-06-13 153 {
795ee30648c7085 Dan Williams 2019-06-13 154 return gen_pool_alloc_algo(pool, size, pool->algo, pool->data);
795ee30648c7085 Dan Williams 2019-06-13 155 }
795ee30648c7085 Dan Williams 2019-06-13 156
684f0d3d14f2744 Nicolin Chen 2013-11-12 157 extern void *gen_pool_dma_alloc(struct gen_pool *pool, size_t size,
684f0d3d14f2744 Nicolin Chen 2013-11-12 158 dma_addr_t *dma);
cf394fc5f7155c2 Fredrik Noring 2019-06-25 159 extern void *gen_pool_dma_alloc_algo(struct gen_pool *pool, size_t size,
cf394fc5f7155c2 Fredrik Noring 2019-06-25 160 dma_addr_t *dma, genpool_algo_t algo, void *data);
cf394fc5f7155c2 Fredrik Noring 2019-06-25 161 extern void *gen_pool_dma_alloc_align(struct gen_pool *pool, size_t size,
cf394fc5f7155c2 Fredrik Noring 2019-06-25 162 dma_addr_t *dma, int align);
cf394fc5f7155c2 Fredrik Noring 2019-06-25 163 extern void *gen_pool_dma_zalloc(struct gen_pool *pool, size_t size, dma_addr_t *dma);
cf394fc5f7155c2 Fredrik Noring 2019-06-25 164 extern void *gen_pool_dma_zalloc_algo(struct gen_pool *pool, size_t size,
cf394fc5f7155c2 Fredrik Noring 2019-06-25 165 dma_addr_t *dma, genpool_algo_t algo, void *data);
cf394fc5f7155c2 Fredrik Noring 2019-06-25 166 extern void *gen_pool_dma_zalloc_align(struct gen_pool *pool, size_t size,
cf394fc5f7155c2 Fredrik Noring 2019-06-25 167 dma_addr_t *dma, int align);
795ee30648c7085 Dan Williams 2019-06-13 168 extern void gen_pool_free_owner(struct gen_pool *pool, unsigned long addr,
795ee30648c7085 Dan Williams 2019-06-13 169 size_t size, void **owner);
795ee30648c7085 Dan Williams 2019-06-13 170 static inline void gen_pool_free(struct gen_pool *pool, unsigned long addr,
795ee30648c7085 Dan Williams 2019-06-13 171 size_t size)
795ee30648c7085 Dan Williams 2019-06-13 172 {
795ee30648c7085 Dan Williams 2019-06-13 @173 gen_pool_free_owner(pool, addr, size, NULL);
795ee30648c7085 Dan Williams 2019-06-13 174 }
795ee30648c7085 Dan Williams 2019-06-13 175
:::::: The code at line 173 was first introduced by commit
:::::: 795ee30648c708502da9df637f83c33361d68dcc lib/genalloc: introduce chunk owners
:::::: TO: Dan Williams <dan.j.williams@xxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki