| From: Heiko Carstens <hca@linux.ibm.com> |
| Subject: checkstack: fix printed address |
| Date: Mon, 20 Nov 2023 19:37:17 +0100 |
| |
| All addresses printed by checkstack have an extra incorrect 0 appended at |
| the end. |
| |
| This was introduced with commit 677f1410e058 ("scripts/checkstack.pl: don't |
| display $dre as different entity"): since then the address is taken from |
| the line which contains the function name, instead of the line which |
| contains stack consumption. E.g. on s390: |
| |
| 0000000000100a30 <do_one_initcall>: |
| ... |
| 100a44: e3 f0 ff 70 ff 71 lay %r15,-144(%r15) |
| |
| So the used regex which matches spaces and hexadecimal numbers to extract |
| an address now matches a different substring. Subsequently replacing spaces |
| with 0 appends a zero at the and, instead of replacing leading spaces. |
| |
| Fix this by using the proper regex, and simplify the code a bit. |
| |
| Link: https://lkml.kernel.org/r/20231120183719.2188479-2-hca@linux.ibm.com |
| Fixes: 677f1410e058 ("scripts/checkstack.pl: don't display $dre as different entity") |
| Signed-off-by: Heiko Carstens <hca@linux.ibm.com> |
| Cc: Maninder Singh <maninder1.s@samsung.com> |
| Cc: Masahiro Yamada <masahiroy@kernel.org> |
| Cc: Vaneet Narang <v.narang@samsung.com> |
| Cc: <stable@vger.kernel.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| scripts/checkstack.pl | 8 ++------ |
| 1 file changed, 2 insertions(+), 6 deletions(-) |
| |
| --- a/scripts/checkstack.pl~checkstack-fix-printed-address |
| +++ a/scripts/checkstack.pl |
| @@ -139,15 +139,11 @@ $total_size = 0; |
| while (my $line = <STDIN>) { |
| if ($line =~ m/$funcre/) { |
| $func = $1; |
| - next if $line !~ m/^($xs*)/; |
| + next if $line !~ m/^($x*)/; |
| if ($total_size > $min_stack) { |
| push @stack, "$intro$total_size\n"; |
| } |
| - |
| - $addr = $1; |
| - $addr =~ s/ /0/g; |
| - $addr = "0x$addr"; |
| - |
| + $addr = "0x$1"; |
| $intro = "$addr $func [$file]:"; |
| my $padlen = 56 - length($intro); |
| while ($padlen > 0) { |
| _ |