diff options
| author | Koichiro Den <den@valinux.co.jp> | 2026-05-13 11:49:20 +0900 |
|---|---|---|
| committer | Bjorn Helgaas <bhelgaas@google.com> | 2026-06-23 11:37:44 -0500 |
| commit | 6eb7e28f1f24a28234add38755687a7ed8bc2654 (patch) | |
| tree | 8209c6943581745fb2415b35b76f14e8d6dd650e /drivers/ntb | |
| parent | 84af8a5f5ef24b74f44470e7e6af7089ef125e84 (diff) | |
| download | linux-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.c | 6 |
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); |
