From: Klaus Jensen <k.jen...@samsung.com> Fix mmio read issues on big-endian hosts. The core issue is that values in the BAR is not stored in little endian as required.
Fix that and add a regression test for this. This required a bit of cleanup, so it blew up into a series. v4: * "hw/nvme: split pmrmsc register into upper and lower" - Fix missing left-shift (Peter) * "hw/nvme: fix mmio read" - Remove unnecessary masking (Peter) - Keep existing behaviour and do not zero the register fields doing initialization (Peter) v3: * "hw/nvme: use symbolic names for registers" Use offsetof(NvmeBar, reg) instead of explicit offsets (Philippe) * "hw/nvme: fix mmio read" Use the st/ld API instead of cpu_to_X (Philippe) Klaus Jensen (5): hw/nvme: split pmrmsc register into upper and lower hw/nvme: use symbolic names for registers hw/nvme: fix out-of-bounds reads hw/nvme: fix mmio read tests/qtest/nvme-test: add mmio read test include/block/nvme.h | 60 +++++-- hw/nvme/ctrl.c | 352 ++++++++++++++++++++++------------------ tests/qtest/nvme-test.c | 26 +++ 3 files changed, 265 insertions(+), 173 deletions(-) -- 2.32.0