public inbox for llvm@lists.linux.dev
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Guo Ren <guoren@linux.alibaba.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [csky-linux:sg2042-master-qspinlock-64ilp32_v4 30/70] arch/riscv/kernel/setup.c:333:2: error: call to undeclared function 'pv_qspinlock_init'; ISO C99 and later do not support implicit function declarations
Date: Thu, 3 Aug 2023 19:13:51 +0800	[thread overview]
Message-ID: <202308031910.EVcRQack-lkp@intel.com> (raw)

Hi Guo,

FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.

tree:   https://github.com/c-sky/csky-linux sg2042-master-qspinlock-64ilp32_v4
head:   ee021e57ffe3195b6a3ac5fcb2d4353375d1f261
commit: 649c597d937299900198d6b54c954dc93d6b91b0 [30/70] RISC-V: paravirt: pvqspinlock: Add kconfig entry
config: riscv-randconfig-r021-20230731 (https://download.01.org/0day-ci/archive/20230803/202308031910.EVcRQack-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230803/202308031910.EVcRQack-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/202308031910.EVcRQack-lkp@intel.com/

All errors (new ones prefixed by >>):

>> arch/riscv/kernel/setup.c:333:2: error: call to undeclared function 'pv_qspinlock_init'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     333 |         pv_qspinlock_init();
         |         ^
   1 error generated.
--
   arch/riscv/kernel/paravirt.c:109:12: warning: no previous prototype for function 'pv_time_init' [-Wmissing-prototypes]
     109 | int __init pv_time_init(void)
         |            ^
   arch/riscv/kernel/paravirt.c:109:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     109 | int __init pv_time_init(void)
         | ^
         | static 
   In file included from arch/riscv/kernel/paravirt.c:135:
   arch/riscv/include/asm/qspinlock_paravirt.h:5:37: warning: declaration of 'struct qspinlock' will not be visible outside of this function [-Wvisibility]
       5 | void __pv_queued_spin_unlock(struct qspinlock *lock);
         |                                     ^
   arch/riscv/kernel/paravirt.c:137:6: warning: no previous prototype for function 'pv_kick' [-Wmissing-prototypes]
     137 | void pv_kick(int cpu)
         |      ^
   arch/riscv/kernel/paravirt.c:137:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     137 | void pv_kick(int cpu)
         | ^
         | static 
   arch/riscv/kernel/paravirt.c:144:6: warning: no previous prototype for function 'pv_wait' [-Wmissing-prototypes]
     144 | void pv_wait(u8 *ptr, u8 val)
         |      ^
   arch/riscv/kernel/paravirt.c:144:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     144 | void pv_wait(u8 *ptr, u8 val)
         | ^
         | static 
   arch/riscv/kernel/paravirt.c:160:46: warning: declaration of 'struct qspinlock' will not be visible outside of this function [-Wvisibility]
     160 | static void native_queued_spin_unlock(struct qspinlock *lock)
         |                                              ^
>> arch/riscv/kernel/paravirt.c:162:25: error: incomplete definition of type 'struct qspinlock'
     162 |         smp_store_release(&lock->locked, 0);
         |                            ~~~~^
   include/asm-generic/barrier.h:196:34: note: expanded from macro 'smp_store_release'
     196 |         compiletime_assert_atomic_type(*p);                             \
         |                                         ^
   include/linux/compiler_types.h:400:35: note: expanded from macro 'compiletime_assert_atomic_type'
     400 |         compiletime_assert(__native_word(t),                            \
         |                                          ^
   include/linux/compiler_types.h:364:10: note: expanded from macro '__native_word'
     364 |         (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \
         |                 ^
   include/linux/compiler_types.h:397:22: note: expanded from macro 'compiletime_assert'
     397 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |                             ^~~~~~~~~
   include/linux/compiler_types.h:385:23: note: expanded from macro '_compiletime_assert'
     385 |         __compiletime_assert(condition, msg, prefix, suffix)
         |                              ^~~~~~~~~
   include/linux/compiler_types.h:377:9: note: expanded from macro '__compiletime_assert'
     377 |                 if (!(condition))                                       \
         |                       ^~~~~~~~~
   arch/riscv/kernel/paravirt.c:160:46: note: forward declaration of 'struct qspinlock'
     160 | static void native_queued_spin_unlock(struct qspinlock *lock)
         |                                              ^
>> arch/riscv/kernel/paravirt.c:162:25: error: incomplete definition of type 'struct qspinlock'
     162 |         smp_store_release(&lock->locked, 0);
         |                            ~~~~^
   include/asm-generic/barrier.h:196:34: note: expanded from macro 'smp_store_release'
     196 |         compiletime_assert_atomic_type(*p);                             \
         |                                         ^
   include/linux/compiler_types.h:400:35: note: expanded from macro 'compiletime_assert_atomic_type'
     400 |         compiletime_assert(__native_word(t),                            \
         |                                          ^
   include/linux/compiler_types.h:364:39: note: expanded from macro '__native_word'
     364 |         (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \
         |                                              ^
   include/linux/compiler_types.h:397:22: note: expanded from macro 'compiletime_assert'
     397 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |                             ^~~~~~~~~
   include/linux/compiler_types.h:385:23: note: expanded from macro '_compiletime_assert'
     385 |         __compiletime_assert(condition, msg, prefix, suffix)
         |                              ^~~~~~~~~
   include/linux/compiler_types.h:377:9: note: expanded from macro '__compiletime_assert'
     377 |                 if (!(condition))                                       \
         |                       ^~~~~~~~~
   arch/riscv/kernel/paravirt.c:160:46: note: forward declaration of 'struct qspinlock'
     160 | static void native_queued_spin_unlock(struct qspinlock *lock)
         |                                              ^
>> arch/riscv/kernel/paravirt.c:162:25: error: incomplete definition of type 'struct qspinlock'
     162 |         smp_store_release(&lock->locked, 0);
         |                            ~~~~^
   include/asm-generic/barrier.h:196:34: note: expanded from macro 'smp_store_release'
     196 |         compiletime_assert_atomic_type(*p);                             \
         |                                         ^
   include/linux/compiler_types.h:400:35: note: expanded from macro 'compiletime_assert_atomic_type'
     400 |         compiletime_assert(__native_word(t),                            \
         |                                          ^
   include/linux/compiler_types.h:365:10: note: expanded from macro '__native_word'
     365 |          sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
         |                 ^
   include/linux/compiler_types.h:397:22: note: expanded from macro 'compiletime_assert'
     397 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |                             ^~~~~~~~~
   include/linux/compiler_types.h:385:23: note: expanded from macro '_compiletime_assert'
     385 |         __compiletime_assert(condition, msg, prefix, suffix)
         |                              ^~~~~~~~~
   include/linux/compiler_types.h:377:9: note: expanded from macro '__compiletime_assert'
     377 |                 if (!(condition))                                       \
         |                       ^~~~~~~~~
   arch/riscv/kernel/paravirt.c:160:46: note: forward declaration of 'struct qspinlock'
     160 | static void native_queued_spin_unlock(struct qspinlock *lock)
         |                                              ^
>> arch/riscv/kernel/paravirt.c:162:25: error: incomplete definition of type 'struct qspinlock'
     162 |         smp_store_release(&lock->locked, 0);
         |                            ~~~~^
   include/asm-generic/barrier.h:196:34: note: expanded from macro 'smp_store_release'
     196 |         compiletime_assert_atomic_type(*p);                             \
         |                                         ^
   include/linux/compiler_types.h:400:35: note: expanded from macro 'compiletime_assert_atomic_type'
     400 |         compiletime_assert(__native_word(t),                            \
         |                                          ^
   include/linux/compiler_types.h:365:38: note: expanded from macro '__native_word'
     365 |          sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
         |                                             ^
   include/linux/compiler_types.h:397:22: note: expanded from macro 'compiletime_assert'
     397 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |                             ^~~~~~~~~
   include/linux/compiler_types.h:385:23: note: expanded from macro '_compiletime_assert'
     385 |         __compiletime_assert(condition, msg, prefix, suffix)
         |                              ^~~~~~~~~
   include/linux/compiler_types.h:377:9: note: expanded from macro '__compiletime_assert'
     377 |                 if (!(condition))                                       \
         |                       ^~~~~~~~~
   arch/riscv/kernel/paravirt.c:160:46: note: forward declaration of 'struct qspinlock'
     160 | static void native_queued_spin_unlock(struct qspinlock *lock)
         |                                              ^
>> arch/riscv/kernel/paravirt.c:162:25: error: incomplete definition of type 'struct qspinlock'
     162 |         smp_store_release(&lock->locked, 0);
         |                            ~~~~^
   include/asm-generic/barrier.h:198:14: note: expanded from macro 'smp_store_release'
     198 |         WRITE_ONCE(*p, v);                                              \
         |                     ^
   include/asm-generic/rwonce.h:62:33: note: expanded from macro 'WRITE_ONCE'
      62 |         compiletime_assert_rwonce_type(x);                              \
         |                                        ^
   include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type'
      36 |         compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
         |                                          ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:397:22: note: expanded from macro 'compiletime_assert'
     397 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |                             ^~~~~~~~~
   include/linux/compiler_types.h:385:23: note: expanded from macro '_compiletime_assert'
     385 |         __compiletime_assert(condition, msg, prefix, suffix)
         |                              ^~~~~~~~~
   include/linux/compiler_types.h:377:9: note: expanded from macro '__compiletime_assert'
     377 |                 if (!(condition))                                       \
         |                       ^~~~~~~~~
   arch/riscv/kernel/paravirt.c:160:46: note: forward declaration of 'struct qspinlock'
     160 | static void native_queued_spin_unlock(struct qspinlock *lock)
         |                                              ^
>> arch/riscv/kernel/paravirt.c:162:25: error: incomplete definition of type 'struct qspinlock'
     162 |         smp_store_release(&lock->locked, 0);
         |                            ~~~~^
   include/asm-generic/barrier.h:198:14: note: expanded from macro 'smp_store_release'
     198 |         WRITE_ONCE(*p, v);                                              \
         |                     ^
   include/asm-generic/rwonce.h:62:33: note: expanded from macro 'WRITE_ONCE'
      62 |         compiletime_assert_rwonce_type(x);                              \
         |                                        ^
   include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type'
      36 |         compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
         |                                          ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:397:22: note: expanded from macro 'compiletime_assert'
     397 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |                             ^~~~~~~~~
   include/linux/compiler_types.h:385:23: note: expanded from macro '_compiletime_assert'
     385 |         __compiletime_assert(condition, msg, prefix, suffix)
         |                              ^~~~~~~~~
   include/linux/compiler_types.h:377:9: note: expanded from macro '__compiletime_assert'
     377 |                 if (!(condition))                                       \
         |                       ^~~~~~~~~
   arch/riscv/kernel/paravirt.c:160:46: note: forward declaration of 'struct qspinlock'
     160 | static void native_queued_spin_unlock(struct qspinlock *lock)
         |                                              ^
>> arch/riscv/kernel/paravirt.c:162:25: error: incomplete definition of type 'struct qspinlock'
     162 |         smp_store_release(&lock->locked, 0);
         |                            ~~~~^
   include/asm-generic/barrier.h:198:14: note: expanded from macro 'smp_store_release'
     198 |         WRITE_ONCE(*p, v);                                              \
         |                     ^
   include/asm-generic/rwonce.h:62:33: note: expanded from macro 'WRITE_ONCE'
      62 |         compiletime_assert_rwonce_type(x);                              \
         |                                        ^
   include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type'
      36 |         compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
         |                                          ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:397:22: note: expanded from macro 'compiletime_assert'
     397 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |                             ^~~~~~~~~
   include/linux/compiler_types.h:385:23: note: expanded from macro '_compiletime_assert'
     385 |         __compiletime_assert(condition, msg, prefix, suffix)
         |                              ^~~~~~~~~
   include/linux/compiler_types.h:377:9: note: expanded from macro '__compiletime_assert'
     377 |                 if (!(condition))                                       \
         |                       ^~~~~~~~~
   arch/riscv/kernel/paravirt.c:160:46: note: forward declaration of 'struct qspinlock'
     160 | static void native_queued_spin_unlock(struct qspinlock *lock)
         |                                              ^
>> arch/riscv/kernel/paravirt.c:162:25: error: incomplete definition of type 'struct qspinlock'
     162 |         smp_store_release(&lock->locked, 0);
         |                            ~~~~^
   include/asm-generic/barrier.h:198:14: note: expanded from macro 'smp_store_release'
     198 |         WRITE_ONCE(*p, v);                                              \
         |                     ^
   include/asm-generic/rwonce.h:62:33: note: expanded from macro 'WRITE_ONCE'
      62 |         compiletime_assert_rwonce_type(x);                              \
         |                                        ^
   include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type'
      36 |         compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
         |                                          ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:397:22: note: expanded from macro 'compiletime_assert'
     397 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |                             ^~~~~~~~~
   include/linux/compiler_types.h:385:23: note: expanded from macro '_compiletime_assert'
     385 |         __compiletime_assert(condition, msg, prefix, suffix)
         |                              ^~~~~~~~~
   include/linux/compiler_types.h:377:9: note: expanded from macro '__compiletime_assert'
     377 |                 if (!(condition))                                       \
         |                       ^~~~~~~~~
   arch/riscv/kernel/paravirt.c:160:46: note: forward declaration of 'struct qspinlock'
     160 | static void native_queued_spin_unlock(struct qspinlock *lock)
         |                                              ^
>> arch/riscv/kernel/paravirt.c:162:25: error: incomplete definition of type 'struct qspinlock'
     162 |         smp_store_release(&lock->locked, 0);
         |                            ~~~~^
   include/asm-generic/barrier.h:198:14: note: expanded from macro 'smp_store_release'
     198 |         WRITE_ONCE(*p, v);                                              \
         |                     ^
   include/asm-generic/rwonce.h:62:33: note: expanded from macro 'WRITE_ONCE'
      62 |         compiletime_assert_rwonce_type(x);                              \
         |                                        ^
   include/asm-generic/rwonce.h:36:48: note: expanded from macro 'compiletime_assert_rwonce_type'
      36 |         compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long),  \
         |                                                       ^
   include/linux/compiler_types.h:397:22: note: expanded from macro 'compiletime_assert'
     397 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
         |                             ^~~~~~~~~
   include/linux/compiler_types.h:385:23: note: expanded from macro '_compiletime_assert'
     385 |         __compiletime_assert(condition, msg, prefix, suffix)
         |                              ^~~~~~~~~
   include/linux/compiler_types.h:377:9: note: expanded from macro '__compiletime_assert'
     377 |                 if (!(condition))                                       \
         |                       ^~~~~~~~~
   arch/riscv/kernel/paravirt.c:160:46: note: forward declaration of 'struct qspinlock'
     160 | static void native_queued_spin_unlock(struct qspinlock *lock)
         |                                              ^
>> arch/riscv/kernel/paravirt.c:162:25: error: incomplete definition of type 'struct qspinlock'
     162 |         smp_store_release(&lock->locked, 0);
         |                            ~~~~^
   include/asm-generic/barrier.h:198:14: note: expanded from macro 'smp_store_release'
     198 |         WRITE_ONCE(*p, v);                                              \
         |                     ^
   include/asm-generic/rwonce.h:63:15: note: expanded from macro 'WRITE_ONCE'
      63 |         __WRITE_ONCE(x, val);                                           \
         |                      ^
   arch/riscv/include/asm/rwonce.h:12:20: note: expanded from macro '__WRITE_ONCE'
      12 |         *(volatile typeof(x) *)&(x) = (val);            \
         |                           ^
   arch/riscv/kernel/paravirt.c:160:46: note: forward declaration of 'struct qspinlock'
     160 | static void native_queued_spin_unlock(struct qspinlock *lock)
         |                                              ^
>> arch/riscv/kernel/paravirt.c:162:25: error: incomplete definition of type 'struct qspinlock'
     162 |         smp_store_release(&lock->locked, 0);
         |                            ~~~~^
   include/asm-generic/barrier.h:198:14: note: expanded from macro 'smp_store_release'
     198 |         WRITE_ONCE(*p, v);                                              \
         |                     ^
   include/asm-generic/rwonce.h:63:15: note: expanded from macro 'WRITE_ONCE'
      63 |         __WRITE_ONCE(x, val);                                           \
         |                      ^
   arch/riscv/include/asm/rwonce.h:12:27: note: expanded from macro '__WRITE_ONCE'
      12 |         *(volatile typeof(x) *)&(x) = (val);            \
         |                                  ^
   arch/riscv/kernel/paravirt.c:160:46: note: forward declaration of 'struct qspinlock'
     160 | static void native_queued_spin_unlock(struct qspinlock *lock)
         |                                              ^
>> arch/riscv/kernel/paravirt.c:165:50: error: use of undeclared identifier 'native_queued_spin_lock_slowpath'; did you mean '__SCK__pv_queued_spin_lock_slowpath'?
     165 | DEFINE_STATIC_CALL(pv_queued_spin_lock_slowpath, native_queued_spin_lock_slowpath);
         |                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                                  __SCK__pv_queued_spin_lock_slowpath
   include/linux/static_call.h:298:29: note: expanded from macro 'DEFINE_STATIC_CALL'
     298 |         __DEFINE_STATIC_CALL(name, _func, _func)
         |                                    ^
   include/linux/static_call.h:292:28: note: expanded from macro '__DEFINE_STATIC_CALL'
     292 |         DECLARE_STATIC_CALL(name, _func);                               \
         |                                   ^
   include/linux/static_call_types.h:39:16: note: expanded from macro 'DECLARE_STATIC_CALL'
      39 |         extern typeof(func) STATIC_CALL_TRAMP(name);
         |                       ^
   arch/riscv/kernel/paravirt.c:165:1: note: '__SCK__pv_queued_spin_lock_slowpath' declared here
     165 | DEFINE_STATIC_CALL(pv_queued_spin_lock_slowpath, native_queued_spin_lock_slowpath);
         | ^
   include/linux/static_call.h:298:2: note: expanded from macro 'DEFINE_STATIC_CALL'
     298 |         __DEFINE_STATIC_CALL(name, _func, _func)
         |         ^
   include/linux/static_call.h:292:2: note: expanded from macro '__DEFINE_STATIC_CALL'
     292 |         DECLARE_STATIC_CALL(name, _func);                               \
         |         ^
   include/linux/static_call_types.h:38:32: note: expanded from macro 'DECLARE_STATIC_CALL'
      38 |         extern struct static_call_key STATIC_CALL_KEY(name);            \
         |                                       ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:75:22: note: expanded from macro '__PASTE'
      75 | #define __PASTE(a,b) ___PASTE(a,b)
         |                      ^
   include/linux/compiler_types.h:74:23: note: expanded from macro '___PASTE'
      74 | #define ___PASTE(a,b) a##b
         |                       ^
   <scratch space>:28:1: note: expanded from here
      28 | __SCK__pv_queued_spin_lock_slowpath
         | ^
   arch/riscv/kernel/paravirt.c:165:50: error: use of undeclared identifier 'native_queued_spin_lock_slowpath'
     165 | DEFINE_STATIC_CALL(pv_queued_spin_lock_slowpath, native_queued_spin_lock_slowpath);
         |                                                  ^
>> arch/riscv/kernel/paravirt.c:195:2: error: call to undeclared function '__pv_init_lock_hash'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     195 |         __pv_init_lock_hash();
         |         ^
>> arch/riscv/kernel/paravirt.c:197:51: error: use of undeclared identifier '__pv_queued_spin_lock_slowpath'
     197 |         static_call_update(pv_queued_spin_lock_slowpath, __pv_queued_spin_lock_slowpath);
         |                                                          ^
>> arch/riscv/kernel/paravirt.c:198:2: error: incompatible function pointer types initializing 'typeof (&__SCT__pv_queued_spin_unlock)' (aka 'void (*)(struct qspinlock *)') with an expression of type 'void (struct qspinlock *)' [-Wincompatible-function-pointer-types]
     198 |         static_call_update(pv_queued_spin_unlock, __pv_queued_spin_unlock);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/static_call.h:154:35: note: expanded from macro 'static_call_update'
     154 |         typeof(&STATIC_CALL_TRAMP(name)) __F = (func);                  \
         |                                          ^     ~~~~~~
   arch/riscv/kernel/paravirt.c:178:13: warning: no previous prototype for function 'pv_qspinlock_init' [-Wmissing-prototypes]
     178 | void __init pv_qspinlock_init(void)
         |             ^
   arch/riscv/kernel/paravirt.c:178:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     178 | void __init pv_qspinlock_init(void)
         | ^
         | static 
   6 warnings and 16 errors generated.

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for PARAVIRT_SPINLOCKS
   Depends on [n]: PARAVIRT [=y] && SMP [=n]
   Selected by [y]:
   - PARAVIRT [=y] && RISCV_SBI [=y]


vim +/pv_qspinlock_init +333 arch/riscv/kernel/setup.c

f1e58583b9c7ce Atish Patra 2020-03-17  329  
5b3283ec604d33 Guo Ren     2023-07-27  330  void __init arch_cpu_finalize_init(void)
5b3283ec604d33 Guo Ren     2023-07-27  331  {
349f37f3d4ea50 Guo Ren     2023-07-31  332  #ifdef CONFIG_PARAVIRT_SPINLOCKS
349f37f3d4ea50 Guo Ren     2023-07-31 @333  	pv_qspinlock_init();
349f37f3d4ea50 Guo Ren     2023-07-31  334  #endif
5b3283ec604d33 Guo Ren     2023-07-27  335  	virt_spin_lock_init();
5b3283ec604d33 Guo Ren     2023-07-27  336  }
5b3283ec604d33 Guo Ren     2023-07-27  337  

:::::: The code at line 333 was first introduced by commit
:::::: 349f37f3d4ea507ce140d44a7fbee4c56994c95b RISC-V: paravirt: pvqspinlock: Add paravirt qspinlock skeleton

:::::: TO: Guo Ren <guoren@linux.alibaba.com>
:::::: CC: Guo Ren <guoren@linux.alibaba.com>

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

                 reply	other threads:[~2023-08-03 11:14 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=202308031910.EVcRQack-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=guoren@linux.alibaba.com \
    --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