[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 21/23] hw/nvme: fix missing check for PMR capability
From: |
Klaus Jensen |
Subject: |
[PULL 21/23] hw/nvme: fix missing check for PMR capability |
Date: |
Tue, 29 Jun 2021 20:47:41 +0200 |
From: Klaus Jensen <k.jensen@samsung.com>
Qiang Liu reported that an access on an unknown address is triggered in
memory_region_set_enabled because a check on CAP.PMRS is missing for the
PMRCTL register write when no PMR is configured.
Cc: qemu-stable@nongnu.org
Fixes: 75c3c9de961d ("hw/block/nvme: disable PMR at boot up")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/362
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
---
hw/nvme/ctrl.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
index dd2b4fa127cc..5c6c7d3455c3 100644
--- a/hw/nvme/ctrl.c
+++ b/hw/nvme/ctrl.c
@@ -5860,6 +5860,10 @@ static void nvme_write_bar(NvmeCtrl *n, hwaddr offset,
uint64_t data,
"invalid write to PMRCAP register, ignored");
return;
case 0xe04: /* PMRCTL */
+ if (!NVME_CAP_PMRS(n->bar.cap)) {
+ return;
+ }
+
n->bar.pmrctl = data;
if (NVME_PMRCTL_EN(data)) {
memory_region_set_enabled(&n->pmr.dev->mr, true);
--
2.32.0
- [PULL 12/23] hw/nvme: remove assert from nvme_get_zone_by_slba, (continued)
- [PULL 12/23] hw/nvme: remove assert from nvme_get_zone_by_slba, Klaus Jensen, 2021/06/29
- [PULL 13/23] hw/nvme: use prinfo directly in nvme_check_prinfo and nvme_dif_check, Klaus Jensen, 2021/06/29
- [PULL 14/23] hw/nvme: add dw0/1 to the req completion trace event, Klaus Jensen, 2021/06/29
- [PULL 15/23] hw/nvme: reimplement the copy command to allow aio cancellation, Klaus Jensen, 2021/06/29
- [PULL 16/23] hw/nvme: reimplement zone reset to allow cancellation, Klaus Jensen, 2021/06/29
- [PULL 17/23] hw/nvme: reimplement format nvm to allow cancellation, Klaus Jensen, 2021/06/29
- [PULL 18/23] Partially revert "hw/block/nvme: drain namespaces on sq deletion", Klaus Jensen, 2021/06/29
- [PULL 19/23] hw/nvme: fix endianess conversion and add controller list, Klaus Jensen, 2021/06/29
- [PULL 20/23] hw/nvme: documentation fix, Klaus Jensen, 2021/06/29
- [PULL 23/23] hw/nvme: add 'zoned.zasl' to documentation, Klaus Jensen, 2021/06/29
- [PULL 21/23] hw/nvme: fix missing check for PMR capability,
Klaus Jensen <=
- [PULL 22/23] hw/nvme: fix pin-based interrupt behavior (again), Klaus Jensen, 2021/06/29