OSDN Git Service

sections: Fix __is_kernel() to include init ranges
authorHelge Deller <deller@gmx.de>
Fri, 7 Jan 2022 00:13:02 +0000 (01:13 +0100)
committerHelge Deller <deller@gmx.de>
Tue, 11 Jan 2022 10:57:38 +0000 (11:57 +0100)
commit16f035d9e264d95d61d5f4056bb00d8169a7a3d1
treebc142f6efa27d464ee375e67cff350f8bae4bdf8
parente486288d116ab4885e42757de1e0e1ee5541c86e
sections: Fix __is_kernel() to include init ranges

With CONFIG_KALLSYMS_ALL=y, the function is_ksym_addr() is used to
determine if a symbol is from inside the kernel range. For that the
given symbol address is checked if it's inside the _stext to _end range.

Although this is correct, some architectures (e.g. parisc) may have the
init area before the _stext address and as such the check in
is_ksym_addr() fails.  By extending the range check to include the init
section, __is_kernel() will now detect symbols in this range as well.

This fixes an issue on parisc where addresses of kernel functions in
init sections aren't resolved to their symbol names.

Signed-off-by: Helge Deller <deller@gmx.de>
include/asm-generic/sections.h