Hi Philipp, kernel test robot noticed the following build errors:
[auto build test ERROR on 1ecab8b0bad393750c60cc3819ce9c256595463c] url: https://github.com/intel-lab-lkp/linux/commits/Philipp-Stanner/asm-generic-bitops-Add-set_bit_release/20261021-115512 base: 1ecab8b0bad393750c60cc3819ce9c256595463c patch link: https://lore.kernel.org/r/20261021095512.1345191-4-phasta%40kernel.org patch subject: [PATCH 2/2] dma-buf/dma-fence: Order setting of the signaled-bit properly config: sparc64-allmodconfig (https://download.01.org/0day-ci/archive/20261026/[email protected]/config) compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261026/[email protected]/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 <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All errors (new ones prefixed by >>): >> drivers/dma-buf/dma-fence.c:393:2: error: call to undeclared function >> 'set_bit_release'; ISO C99 and later do not support implicit function >> declarations [-Wimplicit-function-declaration] 393 | set_bit_release(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags); | ^ 1 error generated. vim +/set_bit_release +393 drivers/dma-buf/dma-fence.c 337 338 /** 339 * dma_fence_signal_timestamp_locked - signal completion of a fence 340 * @fence: the fence to signal 341 * @timestamp: fence signal timestamp in kernel's CLOCK_MONOTONIC time domain 342 * 343 * Signal completion for software callbacks on a fence, this will unblock 344 * dma_fence_wait() calls and run all the callbacks added with 345 * dma_fence_add_callback(). Can be called multiple times, but since a fence 346 * can only go from the unsignaled to the signaled state and not back, it will 347 * only be effective the first time. Set the timestamp provided as the fence 348 * signal timestamp. 349 * 350 * Unlike dma_fence_signal_timestamp(), this function must be called with 351 * &dma_fence.lock held. 352 */ 353 void dma_fence_signal_timestamp_locked(struct dma_fence *fence, 354 ktime_t timestamp) 355 { 356 const struct dma_fence_ops *ops; 357 struct dma_fence_cb *cur, *tmp; 358 struct list_head cb_list; 359 360 dma_fence_assert_held(fence); 361 362 if (unlikely(dma_fence_test_signaled_flag(fence))) 363 return; 364 365 trace_dma_fence_signaled(fence); 366 367 /* 368 * When neither a release nor a wait operation is specified set the ops 369 * pointer to NULL to allow the fence structure to become independent 370 * from who originally issued it. 371 */ 372 ops = rcu_dereference_protected(fence->ops, true); 373 if (!ops->release && !ops->wait) 374 RCU_INIT_POINTER(fence->ops, NULL); 375 376 /* Stash the cb_list before replacing it with the timestamp */ 377 list_replace(&fence->cb_list, &cb_list); 378 379 fence->timestamp = timestamp; 380 set_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT, &fence->flags); 381 382 list_for_each_entry_safe(cur, tmp, &cb_list, node) { 383 INIT_LIST_HEAD(&cur->node); 384 cur->func(fence, cur); 385 } 386 387 /* 388 * This orders the signaled-state with the test_bit_acquire() in 389 * dma_fence_test_signaled_flag(). This ensures that functions like 390 * dma_fence_is_signaled() can only ever return true once signaling is 391 * completed (i.e., after the callbacks above ran). 392 */ > 393 set_bit_release(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags); 394 } 395 EXPORT_SYMBOL(dma_fence_signal_timestamp_locked); 396 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
