mbox series

[v4,0/5] hw/nvme: fix mmio read

Message ID 20210719200733.28502-1-its@irrelevant.dk
Headers show
Series hw/nvme: fix mmio read | expand

Message

Klaus Jensen July 19, 2021, 8:07 p.m. UTC
From: Klaus Jensen <k.jensen@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(-)