> -----Original Message-----
> From: Guo, Junfeng <junfeng....@intel.com>
> Sent: Wednesday, February 9, 2022 12:47 PM
> To: Wu, Jingjing <jingjing...@intel.com>
> Cc: dev@dpdk.org; sta...@dpdk.org; Guo, Junfeng <junfeng....@intel.com>
> Subject: [PATCH v3] raw/ntb: clear all valid DB bits when DB init
>
> 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: 62012a76811e ("raw/ntb: add handshake process")
> Cc: sta...@dpdk.org
>
> Signed-off-by: Junfeng Guo <junfeng....@intel.com>
> ---
> drivers/raw/ntb/ntb.c | 2 ++
> 1 file changed, 2 insertions(+)
>
Better to add changes compared to previous version, which would help reviewers.
> diff --git a/drivers/raw/ntb/ntb.c b/drivers/raw/ntb/ntb.c
> index 46ac02e5ab..cc611dfbb9 100644
> --- a/drivers/raw/ntb/ntb.c
> +++ b/drivers/raw/ntb/ntb.c
> @@ -1398,6 +1398,8 @@ 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 */
> + (*hw->ntb_ops->db_clear)(dev, hw->db_valid_mask);
Check if hw->ntb_ops->db_clear is NULL before call it.
>
> intr_handle = pci_dev->intr_handle;
> /* Register callback func to eal lib */
> --
> 2.25.1