Re: [PATCH v4] scripts/decodecode: fix faulting instruction no print when opps.file is DOS format

From: Borislav Petkov
Date: Fri Oct 08 2021 - 06:35:59 EST


On Fri, Oct 08, 2021 at 02:47:12PM +0800, unknown wrote:
> From: weidonghui <weidonghui@xxxxxxxxxxxxxxxxx>
>
> If opps.file is in DOS format, faulting instruction cannot be printed:
> / # ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
> / # ./scripts/decodecode < oops.file
> [ 0.734345] Code: d0002881 912f9c21 94067e68 d2800001 (b900003f)
> aarch64-linux-gnu-strip: '/tmp/tmp.5Y9eybnnSi.o': No such file
> aarch64-linux-gnu-objdump: '/tmp/tmp.5Y9eybnnSi.o': No such file
> All code
> ========
> 0: d0002881 adrp x1, 0x512000
> 4: 912f9c21 add x1, x1, #0xbe7
> 8: 94067e68 bl 0x19f9a8
> c: d2800001 mov x1, #0x0 // #0
> 10: b900003f str wzr, [x1]
>
> Code starting with the faulting instruction
> ===========================================
>
> Background: The compilation environment is Ubuntu,
> and the test environment is Windows.
> Most logs are generated in the Windows environment.
> In this way, CR (carriage return) will inevitably appear,
> which will affect the use of decodecode in the Ubuntu environment.
> The repaired effect is as follows:
> / # ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
> / # ./scripts/decodecode < oops.file
> [ 0.734345] Code: d0002881 912f9c21 94067e68 d2800001 (b900003f)
> All code
> ========
> 0: d0002881 adrp x1, 0x512000
> 4: 912f9c21 add x1, x1, #0xbe7
> 8: 94067e68 bl 0x19f9a8
> c: d2800001 mov x1, #0x0 // #0
> 10:* b900003f str wzr, [x1] <-- trapping instruction
>
> Code starting with the faulting instruction
> ===========================================
> 0: b900003f str wzr, [x1]
>
> Cc: Borislav Petkov <bp@xxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Cc: Marc Zyngier <maz@xxxxxxxxxxxxxxx>
> Cc: Will Deacon <will@xxxxxxxxxx>
> Cc: Rabin Vincent <rabin@xxxxxx>
> Cc: lkml <linux-kernel@xxxxxxxxxxxxxxx>
> Signed-off-by: weidonghui <weidonghui@xxxxxxxxxxxxxxxxx>
> ---
> scripts/decodecode | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/decodecode b/scripts/decodecode
> index 31d884e35f2f..c711a196511c 100755
> --- a/scripts/decodecode
> +++ b/scripts/decodecode
> @@ -126,7 +126,7 @@ if [ $marker -ne 0 ]; then
> fi
> echo Code starting with the faulting instruction > $T.aa
> echo =========================================== >> $T.aa
> -code=`echo $code | sed -e 's/ [<(]/ /;s/[>)] / /;s/ /,0x/g; s/[>)]$//'`
> +code=`echo $code | sed -e 's/\r//;s/ [<(]/ /;s/[>)] / /;s/ /,0x/g; s/[>)]$//'`
> echo -n " .$type 0x" > $T.s
> echo $code >> $T.s
> disas $T 0
> --

Acked-by: Borislav Petkov <bp@xxxxxxx>

Andrew, you could clean up that commit message when applying.

Thx.

--
Regards/Gruss,
Boris.

SUSE Software Solutions Germany GmbH, GF: Felix Imendörffer, HRB 36809, AG Nürnberg