}\r
\r
\r
-static void dump_wqe(uint32_t print_lvl, uint32_t *wqe_ptr , struct mthca_qp *qp_ptr)\r
+static void dump_wqe(uint32_t print_lvl, uint32_t *wqe_ptr , struct mthca_qp *qp_ptr, int size)\r
{\r
net32_t *wqe = wqe_ptr;\r
+ int i;\r
\r
(void) wqe; /* avoid warning if mthca_dbg compiled away... */\r
- UVP_PRINT(print_lvl,UVP_DBG_QP,("WQE contents QPN 0x%06x \n",qp_ptr->ibv_qp.qp_num));\r
- UVP_PRINT(print_lvl,UVP_DBG_QP,("WQE contents [%02x] %08x %08x %08x %08x \n",0\r
- , cl_ntoh32(wqe[0]), cl_ntoh32(wqe[1]), cl_ntoh32(wqe[2]), cl_ntoh32(wqe[3])));\r
- UVP_PRINT(print_lvl,UVP_DBG_QP,("WQE contents [%02x] %08x %08x %08x %08x \n",4\r
- , cl_ntoh32(wqe[4]), cl_ntoh32(wqe[5]), cl_ntoh32(wqe[6]), cl_ntoh32(wqe[7])));\r
- UVP_PRINT(print_lvl,UVP_DBG_QP,("WQE contents [%02x] %08x %08x %08x %08x \n",8\r
- , cl_ntoh32(wqe[8]), cl_ntoh32(wqe[9]), cl_ntoh32(wqe[10]), cl_ntoh32(wqe[11])));\r
- UVP_PRINT(print_lvl,UVP_DBG_QP,("WQE contents [%02x] %08x %08x %08x %08x \n",12\r
- , cl_ntoh32(wqe[12]), cl_ntoh32(wqe[13]), cl_ntoh32(wqe[14]), cl_ntoh32(wqe[15])));\r
+ UVP_PRINT(print_lvl,UVP_DBG_QP,("WQE: QPN 0x%06x, buf %p , buf_sz %d, send_offset %d\n",\r
+ qp_ptr->ibv_qp.qp_num, qp_ptr->buf, qp_ptr->buf_size, qp_ptr->send_wqe_offset ));\r
+ for (i=0; i<size; ++i) {\r
+ UVP_PRINT(print_lvl,UVP_DBG_QP,(" segment[%d] %08x %08x %08x %08x \n",i,\r
+ cl_ntoh32(wqe[4*i+0]), cl_ntoh32(wqe[4*i+1]), \r
+ cl_ntoh32(wqe[4*i+2]), cl_ntoh32(wqe[4*i+3])));\r
+ }\r
\r
}\r
static void *get_recv_wqe(struct mthca_qp *qp, int n)\r
op0 = opcode;\r
}\r
\r
- dump_wqe( TRACE_LEVEL_VERBOSE, (uint32_t*)qp->sq.last,qp);\r
+ dump_wqe( TRACE_LEVEL_VERBOSE, (uint32_t*)qp->sq.last,qp, size);\r
\r
++ind;\r
if (unlikely(ind >= qp->sq.max))\r
op0 = opcode;\r
}\r
\r
+ dump_wqe( TRACE_LEVEL_VERBOSE, (uint32_t*)qp->sq.last,qp, size);\r
+\r
++ind;\r
if (unlikely(ind >= qp->sq.max))\r
ind -= qp->sq.max;\r