summaryrefslogtreecommitdiff
path: root/drivers/ntb
diff options
context:
space:
mode:
authorKoichiro Den <den@valinux.co.jp>2026-05-13 11:49:20 +0900
committerBjorn Helgaas <bhelgaas@google.com>2026-06-23 11:37:44 -0500
commit6eb7e28f1f24a28234add38755687a7ed8bc2654 (patch)
tree8209c6943581745fb2415b35b76f14e8d6dd650e /drivers/ntb
parent84af8a5f5ef24b74f44470e7e6af7089ef125e84 (diff)
downloadlinux-next-6eb7e28f1f24a28234add38755687a7ed8bc2654.tar.gz
linux-next-6eb7e28f1f24a28234add38755687a7ed8bc2654.zip
NTB: epf: Make db_valid_mask cover only real doorbell bits
ndev->db_count includes an unused doorbell slot due to the legacy extra offset in the peer doorbell path. db_valid_mask must cover only the real doorbell bits and exclude the unused slot. Set db_valid_mask to BIT_ULL(db_count - 1) - 1. Fixes: 812ce2f8d14e ("NTB: Add support for EPF PCI Non-Transparent Bridge") Signed-off-by: Koichiro Den <den@valinux.co.jp> Signed-off-by: Manivannan Sadhasivam <mani@kernel.org> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Reviewed-by: Dave Jiang <dave.jiang@intel.com> Link: https://patch.msgid.link/20260513024923.451765-10-den@valinux.co.jp
Diffstat (limited to 'drivers/ntb')
-rw-r--r--drivers/ntb/hw/epf/ntb_hw_epf.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/ntb/hw/epf/ntb_hw_epf.c b/drivers/ntb/hw/epf/ntb_hw_epf.c
index 21d942824983..c0bab3292075 100644
--- a/drivers/ntb/hw/epf/ntb_hw_epf.c
+++ b/drivers/ntb/hw/epf/ntb_hw_epf.c
@@ -580,7 +580,11 @@ static int ntb_epf_init_dev(struct ntb_epf_dev *ndev)
return ret;
}
- ndev->db_valid_mask = BIT_ULL(ndev->db_count) - 1;
+ /*
+ * ndev->db_count includes an extra skipped slot due to the legacy
+ * doorbell layout, hence -1.
+ */
+ ndev->db_valid_mask = BIT_ULL(ndev->db_count - 1) - 1;
ndev->mw_count = readl(ndev->ctrl_reg + NTB_EPF_MW_COUNT);
ndev->spad_count = readl(ndev->ctrl_reg + NTB_EPF_SPAD_COUNT);