From: Icenowy Zheng Date: Wed, 12 Feb 2025 17:04:43 +0000 (+0800) Subject: nvme-pci: clean up CMBMSC when registering CMB fails X-Git-Tag: nvme-6.14-2025-03-05~7 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=6a3572e10f740acd48e2713ef37e92186a3ce5e8;p=nvme.git nvme-pci: clean up CMBMSC when registering CMB fails CMB decoding should get disabled when the CMB block isn't successfully registered to P2P DMA subsystem. Clean up the CMBMSC register in this error handling codepath to disable CMB decoding (and CMBLOC/CMBSZ registers). Signed-off-by: Icenowy Zheng Reviewed-by: Christoph Hellwig Signed-off-by: Keith Busch --- diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 950289405ef2..218506e3dabe 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -2003,6 +2003,7 @@ static void nvme_map_cmb(struct nvme_dev *dev) if (pci_p2pdma_add_resource(pdev, bar, size, offset)) { dev_warn(dev->ctrl.device, "failed to register the CMB\n"); + hi_lo_writeq(0, dev->bar + NVME_REG_CMBMSC); return; }