> -----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

Reply via email to