tree: https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git atomics/arch-atomic head: a01b575b1e6ed7458c510cc9f67ca8f48dadb1e4 commit: 3b8d11585ddd4748b27ac15ca1fcf1f08e812ffe [24/25] locking/atomic: openrisc: move to the arch_atomic API config: openrisc-randconfig-p001-20210426 (attached as .config) compiler: or1k-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/commit/?id=3b8d11585ddd4748b27ac15ca1fcf1f08e812ffe git remote add mark-rutland https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git git fetch --no-tags mark-rutland atomics/arch-atomic git checkout 3b8d11585ddd4748b27ac15ca1fcf1f08e812ffe # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=openrisc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): In file included from include/linux/atomic.h:81, from include/asm-generic/bitops/lock.h:5, from arch/openrisc/include/asm/bitops.h:42, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from include/asm-generic/bug.h:20, from ./arch/openrisc/include/generated/asm/bug.h:1, from include/linux/bug.h:5, from include/linux/page-flags.h:10, from kernel/bounds.c:10: include/linux/atomic-arch-fallback.h: In function 'arch_atomic_inc': >> include/linux/atomic-arch-fallback.h:340:2: error: implicit declaration of function 'arch_atomic_add'; did you mean 'arch_atomic_and'? [-Werror=implicit-function-declaration] 340 | arch_atomic_add(1, v); | ^~~~~~~~~~~~~~~ | arch_atomic_and include/linux/atomic-arch-fallback.h: In function 'arch_atomic_dec': >> include/linux/atomic-arch-fallback.h:511:2: error: implicit declaration of function 'arch_atomic_sub'; did you mean 'arch_atomic_set'? [-Werror=implicit-function-declaration] 511 | arch_atomic_sub(1, v); | ^~~~~~~~~~~~~~~ | arch_atomic_set cc1: some warnings being treated as errors -- WARNING: unmet direct dependencies detected for LOCKDEP Depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT && (FRAME_POINTER || MIPS || PPC || S390 || MICROBLAZE || ARM || ARC || X86) Selected by - PROVE_LOCKING && DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT - DEBUG_LOCK_ALLOC && DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT In file included from include/linux/atomic.h:81, from include/asm-generic/bitops/lock.h:5, from arch/openrisc/include/asm/bitops.h:42, from include/linux/bitops.h:32, from include/linux/kernel.h:11, from include/asm-generic/bug.h:20, from ./arch/openrisc/include/generated/asm/bug.h:1, from include/linux/bug.h:5, from include/linux/page-flags.h:10, from kernel/bounds.c:10: include/linux/atomic-arch-fallback.h: In function 'arch_atomic_inc': >> include/linux/atomic-arch-fallback.h:340:2: error: implicit declaration of function 'arch_atomic_add'; did you mean 340 | arch_atomic_add(1, v); | ^~~~~~~~~~~~~~~ | arch_atomic_and include/linux/atomic-arch-fallback.h: In function 'arch_atomic_dec': >> include/linux/atomic-arch-fallback.h:511:2: error: implicit declaration of function 'arch_atomic_sub'; did you mean 511 | arch_atomic_sub(1, v); | ^~~~~~~~~~~~~~~ | arch_atomic_set cc1: some warnings being treated as errors Makefile System.map arch block certs crypto drivers fs include init ipc kernel lib mm modules.builtin modules.builtin.modinfo scripts security sound source usr virt vmlinux vmlinux.o vmlinux.symvers [scripts/Makefile.build:116: kernel/bounds.s] Error 1 Target '__build' not remade because of errors. Makefile System.map arch block certs crypto drivers fs include init ipc kernel lib mm modules.builtin modules.builtin.modinfo scripts security sound source usr virt vmlinux vmlinux.o vmlinux.symvers [Makefile:1235: prepare0] Error 2 Target 'prepare' not remade because of errors. make: Makefile System.map arch block certs crypto drivers fs include init ipc kernel lib mm modules.builtin modules.builtin.modinfo scripts security sound source usr virt vmlinux vmlinux.o vmlinux.symvers [Makefile:215: __sub-make] Error 2 make: Target 'prepare' not remade because of errors. Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for LOCKDEP Depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT && (FRAME_POINTER || MIPS || PPC || S390 || MICROBLAZE || ARM || ARC || X86) Selected by - PROVE_LOCKING && DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT - DEBUG_LOCK_ALLOC && DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT vim +/arch_atomic_add +340 include/linux/atomic-arch-fallback.h 37f8173dd84936e Peter Zijlstra 2020-01-24 335 37f8173dd84936e Peter Zijlstra 2020-01-24 336 #ifndef arch_atomic_inc 37f8173dd84936e Peter Zijlstra 2020-01-24 337 static __always_inline void 37f8173dd84936e Peter Zijlstra 2020-01-24 338 arch_atomic_inc(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 339 { 37f8173dd84936e Peter Zijlstra 2020-01-24 @340 arch_atomic_add(1, v); 37f8173dd84936e Peter Zijlstra 2020-01-24 341 } 37f8173dd84936e Peter Zijlstra 2020-01-24 342 #define arch_atomic_inc arch_atomic_inc 37f8173dd84936e Peter Zijlstra 2020-01-24 343 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 344 37f8173dd84936e Peter Zijlstra 2020-01-24 345 #ifndef arch_atomic_inc_return_relaxed 37f8173dd84936e Peter Zijlstra 2020-01-24 346 #ifdef arch_atomic_inc_return 37f8173dd84936e Peter Zijlstra 2020-01-24 347 #define arch_atomic_inc_return_acquire arch_atomic_inc_return 37f8173dd84936e Peter Zijlstra 2020-01-24 348 #define arch_atomic_inc_return_release arch_atomic_inc_return 37f8173dd84936e Peter Zijlstra 2020-01-24 349 #define arch_atomic_inc_return_relaxed arch_atomic_inc_return 37f8173dd84936e Peter Zijlstra 2020-01-24 350 #endif /* arch_atomic_inc_return */ 37f8173dd84936e Peter Zijlstra 2020-01-24 351 37f8173dd84936e Peter Zijlstra 2020-01-24 352 #ifndef arch_atomic_inc_return 37f8173dd84936e Peter Zijlstra 2020-01-24 353 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 354 arch_atomic_inc_return(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 355 { 37f8173dd84936e Peter Zijlstra 2020-01-24 356 return arch_atomic_add_return(1, v); 37f8173dd84936e Peter Zijlstra 2020-01-24 357 } 37f8173dd84936e Peter Zijlstra 2020-01-24 358 #define arch_atomic_inc_return arch_atomic_inc_return 37f8173dd84936e Peter Zijlstra 2020-01-24 359 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 360 37f8173dd84936e Peter Zijlstra 2020-01-24 361 #ifndef arch_atomic_inc_return_acquire 37f8173dd84936e Peter Zijlstra 2020-01-24 362 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 363 arch_atomic_inc_return_acquire(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 364 { 37f8173dd84936e Peter Zijlstra 2020-01-24 365 return arch_atomic_add_return_acquire(1, v); 37f8173dd84936e Peter Zijlstra 2020-01-24 366 } 37f8173dd84936e Peter Zijlstra 2020-01-24 367 #define arch_atomic_inc_return_acquire arch_atomic_inc_return_acquire 37f8173dd84936e Peter Zijlstra 2020-01-24 368 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 369 37f8173dd84936e Peter Zijlstra 2020-01-24 370 #ifndef arch_atomic_inc_return_release 37f8173dd84936e Peter Zijlstra 2020-01-24 371 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 372 arch_atomic_inc_return_release(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 373 { 37f8173dd84936e Peter Zijlstra 2020-01-24 374 return arch_atomic_add_return_release(1, v); 37f8173dd84936e Peter Zijlstra 2020-01-24 375 } 37f8173dd84936e Peter Zijlstra 2020-01-24 376 #define arch_atomic_inc_return_release arch_atomic_inc_return_release 37f8173dd84936e Peter Zijlstra 2020-01-24 377 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 378 37f8173dd84936e Peter Zijlstra 2020-01-24 379 #ifndef arch_atomic_inc_return_relaxed 37f8173dd84936e Peter Zijlstra 2020-01-24 380 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 381 arch_atomic_inc_return_relaxed(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 382 { 37f8173dd84936e Peter Zijlstra 2020-01-24 383 return arch_atomic_add_return_relaxed(1, v); 37f8173dd84936e Peter Zijlstra 2020-01-24 384 } 37f8173dd84936e Peter Zijlstra 2020-01-24 385 #define arch_atomic_inc_return_relaxed arch_atomic_inc_return_relaxed 37f8173dd84936e Peter Zijlstra 2020-01-24 386 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 387 37f8173dd84936e Peter Zijlstra 2020-01-24 388 #else /* arch_atomic_inc_return_relaxed */ 37f8173dd84936e Peter Zijlstra 2020-01-24 389 37f8173dd84936e Peter Zijlstra 2020-01-24 390 #ifndef arch_atomic_inc_return_acquire 37f8173dd84936e Peter Zijlstra 2020-01-24 391 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 392 arch_atomic_inc_return_acquire(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 393 { 37f8173dd84936e Peter Zijlstra 2020-01-24 394 int ret = arch_atomic_inc_return_relaxed(v); 37f8173dd84936e Peter Zijlstra 2020-01-24 395 __atomic_acquire_fence(); 37f8173dd84936e Peter Zijlstra 2020-01-24 396 return ret; 37f8173dd84936e Peter Zijlstra 2020-01-24 397 } 37f8173dd84936e Peter Zijlstra 2020-01-24 398 #define arch_atomic_inc_return_acquire arch_atomic_inc_return_acquire 37f8173dd84936e Peter Zijlstra 2020-01-24 399 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 400 37f8173dd84936e Peter Zijlstra 2020-01-24 401 #ifndef arch_atomic_inc_return_release 37f8173dd84936e Peter Zijlstra 2020-01-24 402 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 403 arch_atomic_inc_return_release(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 404 { 37f8173dd84936e Peter Zijlstra 2020-01-24 405 __atomic_release_fence(); 37f8173dd84936e Peter Zijlstra 2020-01-24 406 return arch_atomic_inc_return_relaxed(v); 37f8173dd84936e Peter Zijlstra 2020-01-24 407 } 37f8173dd84936e Peter Zijlstra 2020-01-24 408 #define arch_atomic_inc_return_release arch_atomic_inc_return_release 37f8173dd84936e Peter Zijlstra 2020-01-24 409 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 410 37f8173dd84936e Peter Zijlstra 2020-01-24 411 #ifndef arch_atomic_inc_return 37f8173dd84936e Peter Zijlstra 2020-01-24 412 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 413 arch_atomic_inc_return(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 414 { 37f8173dd84936e Peter Zijlstra 2020-01-24 415 int ret; 37f8173dd84936e Peter Zijlstra 2020-01-24 416 __atomic_pre_full_fence(); 37f8173dd84936e Peter Zijlstra 2020-01-24 417 ret = arch_atomic_inc_return_relaxed(v); 37f8173dd84936e Peter Zijlstra 2020-01-24 418 __atomic_post_full_fence(); 37f8173dd84936e Peter Zijlstra 2020-01-24 419 return ret; 37f8173dd84936e Peter Zijlstra 2020-01-24 420 } 37f8173dd84936e Peter Zijlstra 2020-01-24 421 #define arch_atomic_inc_return arch_atomic_inc_return 37f8173dd84936e Peter Zijlstra 2020-01-24 422 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 423 37f8173dd84936e Peter Zijlstra 2020-01-24 424 #endif /* arch_atomic_inc_return_relaxed */ 37f8173dd84936e Peter Zijlstra 2020-01-24 425 37f8173dd84936e Peter Zijlstra 2020-01-24 426 #ifndef arch_atomic_fetch_inc_relaxed 37f8173dd84936e Peter Zijlstra 2020-01-24 427 #ifdef arch_atomic_fetch_inc 37f8173dd84936e Peter Zijlstra 2020-01-24 428 #define arch_atomic_fetch_inc_acquire arch_atomic_fetch_inc 37f8173dd84936e Peter Zijlstra 2020-01-24 429 #define arch_atomic_fetch_inc_release arch_atomic_fetch_inc 37f8173dd84936e Peter Zijlstra 2020-01-24 430 #define arch_atomic_fetch_inc_relaxed arch_atomic_fetch_inc 37f8173dd84936e Peter Zijlstra 2020-01-24 431 #endif /* arch_atomic_fetch_inc */ 37f8173dd84936e Peter Zijlstra 2020-01-24 432 37f8173dd84936e Peter Zijlstra 2020-01-24 433 #ifndef arch_atomic_fetch_inc 37f8173dd84936e Peter Zijlstra 2020-01-24 434 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 435 arch_atomic_fetch_inc(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 436 { 37f8173dd84936e Peter Zijlstra 2020-01-24 437 return arch_atomic_fetch_add(1, v); 37f8173dd84936e Peter Zijlstra 2020-01-24 438 } 37f8173dd84936e Peter Zijlstra 2020-01-24 439 #define arch_atomic_fetch_inc arch_atomic_fetch_inc 37f8173dd84936e Peter Zijlstra 2020-01-24 440 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 441 37f8173dd84936e Peter Zijlstra 2020-01-24 442 #ifndef arch_atomic_fetch_inc_acquire 37f8173dd84936e Peter Zijlstra 2020-01-24 443 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 444 arch_atomic_fetch_inc_acquire(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 445 { 37f8173dd84936e Peter Zijlstra 2020-01-24 446 return arch_atomic_fetch_add_acquire(1, v); 37f8173dd84936e Peter Zijlstra 2020-01-24 447 } 37f8173dd84936e Peter Zijlstra 2020-01-24 448 #define arch_atomic_fetch_inc_acquire arch_atomic_fetch_inc_acquire 37f8173dd84936e Peter Zijlstra 2020-01-24 449 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 450 37f8173dd84936e Peter Zijlstra 2020-01-24 451 #ifndef arch_atomic_fetch_inc_release 37f8173dd84936e Peter Zijlstra 2020-01-24 452 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 453 arch_atomic_fetch_inc_release(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 454 { 37f8173dd84936e Peter Zijlstra 2020-01-24 455 return arch_atomic_fetch_add_release(1, v); 37f8173dd84936e Peter Zijlstra 2020-01-24 456 } 37f8173dd84936e Peter Zijlstra 2020-01-24 457 #define arch_atomic_fetch_inc_release arch_atomic_fetch_inc_release 37f8173dd84936e Peter Zijlstra 2020-01-24 458 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 459 37f8173dd84936e Peter Zijlstra 2020-01-24 460 #ifndef arch_atomic_fetch_inc_relaxed 37f8173dd84936e Peter Zijlstra 2020-01-24 461 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 462 arch_atomic_fetch_inc_relaxed(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 463 { 37f8173dd84936e Peter Zijlstra 2020-01-24 464 return arch_atomic_fetch_add_relaxed(1, v); 37f8173dd84936e Peter Zijlstra 2020-01-24 465 } 37f8173dd84936e Peter Zijlstra 2020-01-24 466 #define arch_atomic_fetch_inc_relaxed arch_atomic_fetch_inc_relaxed 37f8173dd84936e Peter Zijlstra 2020-01-24 467 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 468 37f8173dd84936e Peter Zijlstra 2020-01-24 469 #else /* arch_atomic_fetch_inc_relaxed */ 37f8173dd84936e Peter Zijlstra 2020-01-24 470 37f8173dd84936e Peter Zijlstra 2020-01-24 471 #ifndef arch_atomic_fetch_inc_acquire 37f8173dd84936e Peter Zijlstra 2020-01-24 472 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 473 arch_atomic_fetch_inc_acquire(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 474 { 37f8173dd84936e Peter Zijlstra 2020-01-24 475 int ret = arch_atomic_fetch_inc_relaxed(v); 37f8173dd84936e Peter Zijlstra 2020-01-24 476 __atomic_acquire_fence(); 37f8173dd84936e Peter Zijlstra 2020-01-24 477 return ret; 37f8173dd84936e Peter Zijlstra 2020-01-24 478 } 37f8173dd84936e Peter Zijlstra 2020-01-24 479 #define arch_atomic_fetch_inc_acquire arch_atomic_fetch_inc_acquire 37f8173dd84936e Peter Zijlstra 2020-01-24 480 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 481 37f8173dd84936e Peter Zijlstra 2020-01-24 482 #ifndef arch_atomic_fetch_inc_release 37f8173dd84936e Peter Zijlstra 2020-01-24 483 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 484 arch_atomic_fetch_inc_release(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 485 { 37f8173dd84936e Peter Zijlstra 2020-01-24 486 __atomic_release_fence(); 37f8173dd84936e Peter Zijlstra 2020-01-24 487 return arch_atomic_fetch_inc_relaxed(v); 37f8173dd84936e Peter Zijlstra 2020-01-24 488 } 37f8173dd84936e Peter Zijlstra 2020-01-24 489 #define arch_atomic_fetch_inc_release arch_atomic_fetch_inc_release 37f8173dd84936e Peter Zijlstra 2020-01-24 490 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 491 37f8173dd84936e Peter Zijlstra 2020-01-24 492 #ifndef arch_atomic_fetch_inc 37f8173dd84936e Peter Zijlstra 2020-01-24 493 static __always_inline int 37f8173dd84936e Peter Zijlstra 2020-01-24 494 arch_atomic_fetch_inc(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 495 { 37f8173dd84936e Peter Zijlstra 2020-01-24 496 int ret; 37f8173dd84936e Peter Zijlstra 2020-01-24 497 __atomic_pre_full_fence(); 37f8173dd84936e Peter Zijlstra 2020-01-24 498 ret = arch_atomic_fetch_inc_relaxed(v); 37f8173dd84936e Peter Zijlstra 2020-01-24 499 __atomic_post_full_fence(); 37f8173dd84936e Peter Zijlstra 2020-01-24 500 return ret; 37f8173dd84936e Peter Zijlstra 2020-01-24 501 } 37f8173dd84936e Peter Zijlstra 2020-01-24 502 #define arch_atomic_fetch_inc arch_atomic_fetch_inc 37f8173dd84936e Peter Zijlstra 2020-01-24 503 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 504 37f8173dd84936e Peter Zijlstra 2020-01-24 505 #endif /* arch_atomic_fetch_inc_relaxed */ 37f8173dd84936e Peter Zijlstra 2020-01-24 506 37f8173dd84936e Peter Zijlstra 2020-01-24 507 #ifndef arch_atomic_dec 37f8173dd84936e Peter Zijlstra 2020-01-24 508 static __always_inline void 37f8173dd84936e Peter Zijlstra 2020-01-24 509 arch_atomic_dec(atomic_t *v) 37f8173dd84936e Peter Zijlstra 2020-01-24 510 { 37f8173dd84936e Peter Zijlstra 2020-01-24 @511 arch_atomic_sub(1, v); 37f8173dd84936e Peter Zijlstra 2020-01-24 512 } 37f8173dd84936e Peter Zijlstra 2020-01-24 513 #define arch_atomic_dec arch_atomic_dec 37f8173dd84936e Peter Zijlstra 2020-01-24 514 #endif 37f8173dd84936e Peter Zijlstra 2020-01-24 515 :::::: The code at line 340 was first introduced by commit :::::: 37f8173dd84936ea78000ed1cad24f8b18d48ebb locking/atomics: Flip fallbacks and instrumentation :::::: TO: Peter Zijlstra :::::: CC: Thomas Gleixner --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org