Re: [PATCH] x86/insn: Fix vector instructions decoding on big endian

From: Josh Poimboeuf
Date: Fri Nov 13 2020 - 12:31:15 EST


On Fri, Nov 13, 2020 at 05:09:54PM +0100, Vasily Gorbik wrote:
> Running instruction decoder posttest on s390 with allyesconfig shows
> errors. Instructions used in couple of kernel objects could not be
> correctly decoded on big endian system.
>
> insn_decoder_test: warning: objdump says 6 bytes, but insn_get_length() says 5
> insn_decoder_test: warning: Found an x86 instruction decoder bug, please report this.
> insn_decoder_test: warning: ffffffff831eb4e1: 62 d1 fd 48 7f 04 24 vmovdqa64 %zmm0,(%r12)
> insn_decoder_test: warning: objdump says 7 bytes, but insn_get_length() says 6
> insn_decoder_test: warning: Found an x86 instruction decoder bug, please report this.
> insn_decoder_test: warning: ffffffff831eb4e8: 62 51 fd 48 7f 44 24 01 vmovdqa64 %zmm8,0x40(%r12)
> insn_decoder_test: warning: objdump says 8 bytes, but insn_get_length() says 6
>
> This is because in few places instruction field bytes are set directly
> with further usage of "value". To address that introduce and use
> insn_set_byte() helper, which correctly updates "value" on big endian
> systems.
>
> Signed-off-by: Vasily Gorbik <gor@xxxxxxxxxxxxx>
> ---
> Please let me know if this patch is good as it is or I should squash it
> into the patch 2 of my patch series and resend it again.

It all looks good to me, thanks!

Masami, does this patch look good, and also patches 1-2 of the series?
(I think you previously ACKed patch 2).

--
Josh