Hi, all

I can reproduce this test failure locally. I believe the reason is that the
implementation of the pvscsi device in qemu is broken when the endianness of
the guest and the host differs.

It can be easily seen in the driver code of pvscsi that the command data is
sent through a register in units of 32bits in the native endianness. In the
qemu emulated device code, however, although qemu has done the endianness
translation of the registers, the command data is received as a data stream
and filled into a buffer. When a field of a command data struct is 64bits long,
the upper 32 bits and the lower 32 bits will be flipped resulting the
mis-interpretation of the command data.

As a suggestion, I think pvscsi should be disabled on cross-endianness qemu
builds before the implementation is fixed in upstream and the test of
OVMF.legacy.fd on amd64 virtual machines on s390x should be disabled.

Cheers,

Miao Wang

Reply via email to