On Tue, Oct 20, 2020 at 08:04:53PM +0800, Weihang Li wrote: > From: Lang Cheng <chenglang@xxxxxxxxxx> > > The doorbell needs to store PI information into QPC, so the RoCEE should > wait for the results of storing, that is, it needs two bus operations to > complete a doorbell. When ROCEE is in SDI mode, multiple doorbells may be > interlocked because the RoCEE can only handle bus operations serially. So a > flag to mark if HIP09 is working in SDI mode is added. When the SDI flag is > set, the ROCEE will ignore the PI information of the doorbell, continue to > fetch wqe and verify its validity by it's owner_bit. > > Signed-off-by: Lang Cheng <chenglang@xxxxxxxxxx> > Signed-off-by: Weihang Li <liweihang@xxxxxxxxxx> > --- > Changes since v2: > - Replace wmb() with dma_wmb(). > link: https://patchwork.kernel.org/project/linux-rdma/patch/1601199901-41677-1-git-send-email-liweihang@xxxxxxxxxx/ > > Changes since v1: > - Fix comments from Leon about the unused enum. > link: https://patchwork.kernel.org/patch/11799327/ > > drivers/infiniband/hw/hns/hns_roce_device.h | 4 +++- > drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 28 ++++++++++++++++++++++------ > drivers/infiniband/hw/hns/hns_roce_qp.c | 3 +++ > 3 files changed, 28 insertions(+), 7 deletions(-) Applied to for-next, thanks Jason