| From 028644a92848e2a16ed43a5a643c94e5f0272514 Mon Sep 17 00:00:00 2001 |
| From: Qian Cai <cai@lca.pw> |
| Date: Fri, 14 Dec 2018 14:17:20 -0800 |
| Subject: checkstack.pl: fix for aarch64 |
| |
| [ Upstream commit f1733a1d3cd32a9492f4cf866be37bb46e10163d ] |
| |
| There is actually a space after "sp," like this, |
| |
| ffff2000080813c8: a9bb7bfd stp x29, x30, [sp, #-80]! |
| |
| Right now, checkstack.pl isn't able to print anything on aarch64, |
| because it won't be able to match the stating objdump line of a function |
| due to this missing space. Hence, it displays every stack as zero-size. |
| |
| After this patch, checkpatch.pl is able to match the start of a |
| function's objdump, and is then able to calculate each function's stack |
| correctly. |
| |
| Link: http://lkml.kernel.org/r/20181207195843.38528-1-cai@lca.pw |
| Signed-off-by: Qian Cai <cai@lca.pw> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| scripts/checkstack.pl | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/scripts/checkstack.pl b/scripts/checkstack.pl |
| index dd8397894d5c..12a6940741fe 100755 |
| --- a/scripts/checkstack.pl |
| +++ b/scripts/checkstack.pl |
| @@ -46,8 +46,8 @@ my (@stack, $re, $dre, $x, $xs, $funcre); |
| $xs = "[0-9a-f ]"; # hex character or space |
| $funcre = qr/^$x* <(.*)>:$/; |
| if ($arch eq 'aarch64') { |
| - #ffffffc0006325cc: a9bb7bfd stp x29, x30, [sp,#-80]! |
| - $re = qr/^.*stp.*sp,\#-([0-9]{1,8})\]\!/o; |
| + #ffffffc0006325cc: a9bb7bfd stp x29, x30, [sp, #-80]! |
| + $re = qr/^.*stp.*sp, \#-([0-9]{1,8})\]\!/o; |
| } elsif ($arch eq 'arm') { |
| #c0008ffc: e24dd064 sub sp, sp, #100 ; 0x64 |
| $re = qr/.*sub.*sp, sp, #(([0-9]{2}|[3-9])[0-9]{2})/o; |
| -- |
| 2.19.1 |
| |