]> git.baikalelectronics.ru Git - kernel.git/commit
parisc: Fix backtrace to always include init funtion names
authorHelge Deller <deller@gmx.de>
Thu, 4 Nov 2021 19:19:00 +0000 (20:19 +0100)
committerHelge Deller <deller@gmx.de>
Sat, 13 Nov 2021 21:10:56 +0000 (22:10 +0100)
commit4cd544ec05dc3d8234efc0a52084a48552c0478f
tree4075746c6ce6a025f8e5a95d029ec2bae8507aa6
parent9b2bab63ebf05cb79ab14527f02f3af9d9dac710
parisc: Fix backtrace to always include init funtion names

I noticed that sometimes at kernel startup the backtraces did not
included the function names of init functions. Their address were not
resolved to function names and instead only the address was printed.

Debugging shows that the culprit is is_ksym_addr() which is called
by the backtrace functions to check if an address belongs to a function in
the kernel. The problem occurs only for CONFIG_KALLSYMS_ALL=y.

When looking at is_ksym_addr() one can see that for CONFIG_KALLSYMS_ALL=y
the function only tries to resolve the address via is_kernel() function,
which checks like this:
if (addr >= _stext && addr <= _end)
                return 1;
On parisc the init functions are located before _stext, so this check fails.
Other platforms seem to have all functions (including init functions)
behind _stext.

The following patch moves the _stext symbol at the beginning of the
kernel and thus includes the init section. This fixes the check and does
not seem to have any negative side effects on where the kernel mapping
happens in the map_pages() function in arch/parisc/mm/init.c.

Signed-off-by: Helge Deller <deller@gmx.de>
Cc: stable@kernel.org # 5.4+
arch/parisc/kernel/vmlinux.lds.S