Message ID | 20200629203155.1236860-2-its@irrelevant.dk |
---|---|
State | Superseded |
Headers | show |
Series | hw/block/nvme: support scatter gather lists | expand |
diff --git a/hw/block/nvme.c b/hw/block/nvme.c index 94f5bf2a815f..191732692248 100644 --- a/hw/block/nvme.c +++ b/hw/block/nvme.c @@ -91,7 +91,12 @@ static bool nvme_addr_is_cmb(NvmeCtrl *n, hwaddr addr) static int nvme_addr_read(NvmeCtrl *n, hwaddr addr, void *buf, int size) { - if (n->bar.cmbsz && nvme_addr_is_cmb(n, addr)) { + hwaddr hi = addr + size - 1; + if (hi < addr) { + return 1; + } + + if (n->bar.cmbsz && nvme_addr_is_cmb(n, addr) && nvme_addr_is_cmb(n, hi)) { memcpy(buf, nvme_addr_to_cmb(n, addr), size); return 0; }