• Zong Li's avatar
    riscv: Fixup lockdep_assert_held with wrong param cpu_running · c1595992
    Zong Li authored
    The cpu_running is not a lock-class, it lacks the dep_map member in
    completion. It causes the error as follow:
    
    arch/riscv/kernel/smpboot.c: In function '__cpu_up':
    ./include/linux/lockdep.h:364:52: error: 'struct completion' has no member named 'dep_map'
      364 | #define lockdep_is_held(lock)  lock_is_held(&(lock)->dep_map)
          |                                                    ^~
    ./include/asm-generic/bug.h:113:25: note: in definition of macro 'WARN_ON'
      113 |  int __ret_warn_on = !!(condition);    \
          |                         ^~~~~~~~~
    ./include/linux/lockdep.h:390:27: note: in expansion of macro 'lockdep_is_held'
      390 |   WARN_ON(debug_locks && !lockdep_is_held(l)); \
          |                           ^~~~~~~~~~~~~~~
    arch/riscv/kernel/smpboot.c:118:2: note: in expansion of macro 'lockdep_assert_held'
      118 |  lockdep_assert_held(&cpu_running);
    
    There are a lot of archs which use cpu_running in smpboot.c (arm,
    arm64, openrisc, xtensa, s390, x86, mips), but none of them try
    lockdep_assert_held(&cpu_running.wait.lock). So Just remove it.
    Signed-off-by: default avatarZong Li <zong.li@sifive.com>
    Signed-off-by: default avatarGuo Ren <guoren@linux.alibaba.com>
    Signed-off-by: default avatarPalmer Dabbelt <palmerdabbelt@google.com>
    c1595992
smpboot.c 3.63 KB