| From 5c0a1e0a16964597901c10e40b99c95f9d01d60e Mon Sep 17 00:00:00 2001 |
| From: Ivan Delalande <colona@arista.com> |
| Date: Thu, 7 May 2020 18:35:53 -0700 |
| Subject: [PATCH] scripts/decodecode: fix trapping instruction formatting |
| |
| commit e08df079b23e2e982df15aa340bfbaf50f297504 upstream. |
| |
| If the trapping instruction contains a ':', for a memory access through |
| segment registers for example, the sed substitution will insert the '*' |
| marker in the middle of the instruction instead of the line address: |
| |
| 2b: 65 48 0f c7 0f cmpxchg16b %gs:*(%rdi) <-- trapping instruction |
| |
| I started to think I had forgotten some quirk of the assembly syntax |
| before noticing that it was actually coming from the script. Fix it to |
| add the address marker at the right place for these instructions: |
| |
| 28: 49 8b 06 mov (%r14),%rax |
| 2b:* 65 48 0f c7 0f cmpxchg16b %gs:(%rdi) <-- trapping instruction |
| 30: 0f 94 c0 sete %al |
| |
| Fixes: 18ff44b189e2 ("scripts/decodecode: make faulting insn ptr more robust") |
| Signed-off-by: Ivan Delalande <colona@arista.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Reviewed-by: Borislav Petkov <bp@suse.de> |
| Link: http://lkml.kernel.org/r/20200419223653.GA31248@visor |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/scripts/decodecode b/scripts/decodecode |
| index ba8b8d5834e6..fbdb325cdf4f 100755 |
| --- a/scripts/decodecode |
| +++ b/scripts/decodecode |
| @@ -126,7 +126,7 @@ faultlinenum=$(( $(wc -l $T.oo | cut -d" " -f1) - \ |
| faultline=`cat $T.dis | head -1 | cut -d":" -f2-` |
| faultline=`echo "$faultline" | sed -e 's/\[/\\\[/g; s/\]/\\\]/g'` |
| |
| -cat $T.oo | sed -e "${faultlinenum}s/^\(.*:\)\(.*\)/\1\*\2\t\t<-- trapping instruction/" |
| +cat $T.oo | sed -e "${faultlinenum}s/^\([^:]*:\)\(.*\)/\1\*\2\t\t<-- trapping instruction/" |
| echo |
| cat $T.aa |
| cleanup |
| -- |
| 2.7.4 |
| |