• Guo Ren's avatar
    riscv: Fixup compile error BUILD_BUG_ON failed · edfcf91f
    Guo Ren authored
    Unfortunately, the current code couldn't be compiled:
    
      CC      arch/riscv/kernel/patch.o
    In file included from ./include/linux/kernel.h:11,
                     from ./include/linux/list.h:9,
                     from ./include/linux/preempt.h:11,
                     from ./include/linux/spinlock.h:51,
                     from arch/riscv/kernel/patch.c:6:
    In function ‘fix_to_virt’,
        inlined from ‘patch_map’ at arch/riscv/kernel/patch.c:37:17:
    ./include/linux/compiler.h:392:38: error: call to ‘__compiletime_assert_205’ declared with attribute error: BUILD_BUG_ON failed: idx >= __end_of_fixed_addresses
      _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
                                          ^
    ./include/linux/compiler.h:373:4: note: in definition of macro ‘__compiletime_assert’
        prefix ## suffix();    \
        ^~~~~~
    ./include/linux/compiler.h:392:2: note: in expansion of macro ‘_compiletime_assert’
      _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
      ^~~~~~~~~~~~~~~~~~~
    ./include/linux/build_bug.h:39:37: note: in expansion of macro ‘compiletime_assert’
     #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                         ^~~~~~~~~~~~~~~~~~
    ./include/linux/build_bug.h:50:2: note: in expansion of macro ‘BUILD_BUG_ON_MSG’
      BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
      ^~~~~~~~~~~~~~~~
    ./include/asm-generic/fixmap.h:32:2: note: in expansion of macro ‘BUILD_BUG_ON’
      BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
      ^~~~~~~~~~~~
    
    Because fix_to_virt(, idx) needs a const value, not a dynamic variable of
    reg-a0 or BUILD_BUG_ON failed with "idx >= __end_of_fixed_addresses".
    Signed-off-by: default avatarGuo Ren <guoren@linux.alibaba.com>
    Reviewed-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
    Reviewed-by: default avatarPekka Enberg <penberg@kernel.org>
    Signed-off-by: default avatarPalmer Dabbelt <palmerdabbelt@google.com>
    edfcf91f
patch.c 2.89 KB