Skip to content

Commit

Permalink
raw/ntb: clear all valid doorbell bits on init
Browse files Browse the repository at this point in the history
[ upstream commit 3bc814fc555d8c7d1c7c63e1e831e9c34679837f ]

Before registering the doorbell interrupt handler callback function,
all the valid doorbell bits within the NTB private data struct should
be cleared to avoid the confusion of the handshake timing sequence
diagram when setting up the NTB connection in back-to-back mode.

Fixes: 62012a7 ("raw/ntb: add handshake process")

Signed-off-by: Junfeng Guo <junfeng.guo@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
  • Loading branch information
junfengg authored and cpaelzer committed Feb 25, 2022
1 parent dc34c5a commit 37e6856
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions drivers/raw/ntb/ntb.c
Expand Up @@ -1371,6 +1371,10 @@ ntb_init_hw(struct rte_rawdev *dev, struct rte_pci_device *pci_dev)

/* Init doorbell. */
hw->db_valid_mask = RTE_LEN2MASK(hw->db_cnt, uint64_t);
/* Clear all valid doorbell bits before registering intr handler */
if (hw->ntb_ops->db_clear == NULL)
return -ENOTSUP;
(*hw->ntb_ops->db_clear)(dev, hw->db_valid_mask);

intr_handle = &pci_dev->intr_handle;
/* Register callback func to eal lib */
Expand Down

0 comments on commit 37e6856

Please sign in to comment.