From: djtodoro <[email protected]>

The virtio-mmio transport registers are always little-endian per spec.
DEVICE_NATIVE_ENDIAN caused a double byte-swap on BE targets, making
the kernel see a swapped magic value.
---
 hw/virtio/virtio-mmio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c
index 0b0412b22f..92ff793d2c 100644
--- a/hw/virtio/virtio-mmio.c
+++ b/hw/virtio/virtio-mmio.c
@@ -527,7 +527,7 @@ static void virtio_mmio_write(void *opaque, hwaddr offset, 
uint64_t value,
 static const MemoryRegionOps virtio_legacy_mem_ops = {
     .read = virtio_mmio_read,
     .write = virtio_mmio_write,
-    .endianness = DEVICE_NATIVE_ENDIAN,
+    .endianness = DEVICE_LITTLE_ENDIAN,
 };
 
 static const MemoryRegionOps virtio_mem_ops = {
-- 
2.34.1

Reply via email to