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 3bc814f ]

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 kevintraynor committed Feb 21, 2022
1 parent 0627e93 commit 13ddcf9
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions drivers/raw/ntb/ntb.c
Expand Up @@ -1398,6 +1398,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 13ddcf9

Please sign in to comment.