File tree Expand file tree Collapse file tree 3 files changed +13
-0
lines changed
drivers/infiniband/hw/bnxt_re Expand file tree Collapse file tree 3 files changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -77,6 +77,7 @@ struct bnxt_re_srq {
7777 struct bnxt_qplib_srq qplib_srq ;
7878 struct ib_umem * umem ;
7979 spinlock_t lock ; /* protect srq */
80+ void * uctx_srq_page ;
8081};
8182
8283struct bnxt_re_qp {
Original file line number Diff line number Diff line change 5454#include "qplib_rcfw.h"
5555#include "qplib_sp.h"
5656#include "qplib_fp.h"
57+ #include <rdma/ib_addr.h>
58+ #include "bnxt_ulp.h"
59+ #include "bnxt_re.h"
60+ #include "ib_verbs.h"
5761
5862static void __clean_cq (struct bnxt_qplib_cq * cq , u64 qp );
5963
@@ -347,13 +351,20 @@ static void bnxt_qplib_service_nq(struct tasklet_struct *t)
347351 case NQ_BASE_TYPE_SRQ_EVENT :
348352 {
349353 struct bnxt_qplib_srq * srq ;
354+ struct bnxt_re_srq * srq_p ;
350355 struct nq_srq_event * nqsrqe =
351356 (struct nq_srq_event * )nqe ;
352357
353358 q_handle = le32_to_cpu (nqsrqe -> srq_handle_low );
354359 q_handle |= (u64 )le32_to_cpu (nqsrqe -> srq_handle_high )
355360 << 32 ;
356361 srq = (struct bnxt_qplib_srq * )q_handle ;
362+ srq -> toggle = (le16_to_cpu (nqe -> info10_type ) & NQ_CN_TOGGLE_MASK )
363+ >> NQ_CN_TOGGLE_SFT ;
364+ srq -> dbinfo .toggle = srq -> toggle ;
365+ srq_p = container_of (srq , struct bnxt_re_srq , qplib_srq );
366+ if (srq_p -> uctx_srq_page )
367+ * ((u32 * )srq_p -> uctx_srq_page ) = srq -> toggle ;
357368 bnxt_qplib_armen_db (& srq -> dbinfo ,
358369 DBC_DBC_TYPE_SRQ_ARMENA );
359370 if (nq -> srqn_handler (nq ,
Original file line number Diff line number Diff line change @@ -105,6 +105,7 @@ struct bnxt_qplib_srq {
105105 struct bnxt_qplib_sg_info sg_info ;
106106 u16 eventq_hw_ring_id ;
107107 spinlock_t lock ; /* protect SRQE link list */
108+ u8 toggle ;
108109};
109110
110111struct bnxt_qplib_sge {
You can’t perform that action at this time.
0 commit comments