• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/infiniband/hw/nes/

Lines Matching defs:nesqp

214 	struct nes_qp *nesqp = to_nesqp(ibqp);
221 if (nesqp->ibqp_state > IB_QPS_RTS)
224 spin_lock_irqsave(&nesqp->lock, flags);
226 head = nesqp->hwqp.sq_head;
227 qsize = nesqp->hwqp.sq_tail;
230 if (((head + (2 * qsize) - nesqp->hwqp.sq_tail) % qsize) == (qsize - 1)) {
231 spin_unlock_irqrestore(&nesqp->lock, flags);
235 wqe = &nesqp->hwqp.sq_vbase[head];
237 nes_fill_init_qp_wqe(wqe, nesqp, head);
267 nesqp->hwqp.sq_head = head;
271 (1 << 24) | 0x00800000 | nesqp->hwqp.qp_id);
273 spin_unlock_irqrestore(&nesqp->lock, flags);
725 struct nes_qp *nesqp;
738 nesqp = nes_ucontext->mmap_nesqp[index];
739 if (nesqp == NULL) {
744 virt_to_phys(nesqp->hwqp.sq_vbase) >> PAGE_SHIFT,
750 vma->vm_private_data = nesqp;
912 static int nes_setup_virt_qp(struct nes_qp *nesqp, struct nes_pbl *nespbl,
936 nesqp->hwqp.sq_pbase = (le32_to_cpu(((__le32 *)pbl)[0])) | ((u64)((le32_to_cpu(((__le32 *)pbl)[1]))) << 32);
943 nesqp->hwqp.sq_vbase = kmap(nespbl->page);
944 nesqp->page = nespbl->page;
945 if (!nesqp->hwqp.sq_vbase) {
954 nesqp->hwqp.rq_pbase = (le32_to_cpu(((__le32 *)pbl)[0])) | ((u64)((le32_to_cpu(((__le32 *)pbl)[1]))) << 32);
955 /* nesqp->hwqp.rq_vbase = bus_to_virt(*pbl); */
956 /*nesqp->hwqp.rq_vbase = phys_to_virt(*pbl); */
959 nesqp->hwqp.sq_vbase, (unsigned long) nesqp->hwqp.sq_pbase,
960 nesqp->hwqp.rq_vbase, (unsigned long) nesqp->hwqp.rq_pbase);
966 kunmap(nesqp->page);
973 nesqp->pbl_vbase = pci_alloc_consistent(nesdev->pcidev, 256, &nesqp->pbl_pbase);
974 pblbuffer = nesqp->pbl_vbase;
975 if (!nesqp->pbl_vbase) {
983 kunmap(nesqp->page);
986 memset(nesqp->pbl_vbase, 0, 256);
1001 nesqp->qp_mem_size =
1004 nesqp->qp_mem_size += PAGE_SIZE - 1;
1005 nesqp->qp_mem_size &= ~(PAGE_SIZE - 1);
1007 mem = pci_alloc_consistent(nesdev->pcidev, nesqp->qp_mem_size,
1008 &nesqp->hwqp.q2_pbase);
1011 pci_free_consistent(nesdev->pcidev, 256, nesqp->pbl_vbase, nesqp->pbl_pbase);
1012 nesqp->pbl_vbase = NULL;
1016 kunmap(nesqp->page);
1019 nesqp->sq_kmapped = 1;
1020 nesqp->hwqp.q2_vbase = mem;
1022 memset(nesqp->hwqp.q2_vbase, 0, 256);
1023 nesqp->nesqp_context = mem;
1024 memset(nesqp->nesqp_context, 0, sizeof(*nesqp->nesqp_context));
1025 nesqp->nesqp_context_pbase = nesqp->hwqp.q2_pbase + 256;
1034 static int nes_setup_mmap_qp(struct nes_qp *nesqp, struct nes_vnic *nesvnic,
1040 nesqp->qp_mem_size = (sizeof(struct nes_hw_qp_wqe) * sq_size) +
1045 nesqp->qp_mem_size += PAGE_SIZE - 1;
1046 nesqp->qp_mem_size &= ~(PAGE_SIZE - 1);
1048 mem = pci_alloc_consistent(nesdev->pcidev, nesqp->qp_mem_size,
1049 &nesqp->hwqp.sq_pbase);
1054 mem, (unsigned long)nesqp->hwqp.sq_pbase, nesqp->qp_mem_size);
1056 memset(mem, 0, nesqp->qp_mem_size);
1058 nesqp->hwqp.sq_vbase = mem;
1061 nesqp->hwqp.rq_vbase = mem;
1062 nesqp->hwqp.rq_pbase = nesqp->hwqp.sq_pbase +
1066 nesqp->hwqp.q2_vbase = mem;
1067 nesqp->hwqp.q2_pbase = nesqp->hwqp.rq_pbase +
1070 memset(nesqp->hwqp.q2_vbase, 0, 256);
1072 nesqp->nesqp_context = mem;
1073 nesqp->nesqp_context_pbase = nesqp->hwqp.q2_pbase + 256;
1074 memset(nesqp->nesqp_context, 0, sizeof(*nesqp->nesqp_context));
1083 struct nes_qp *nesqp, int virt_wqs)
1088 pci_free_consistent(nesdev->pcidev, nesqp->qp_mem_size,
1089 nesqp->hwqp.sq_vbase, nesqp->hwqp.sq_pbase);
1094 pci_free_consistent(nesdev->pcidev, nesqp->qp_mem_size, nesqp->hwqp.q2_vbase, nesqp->hwqp.q2_pbase);
1095 pci_free_consistent(nesdev->pcidev, 256, nesqp->pbl_vbase, nesqp->pbl_pbase );
1096 nesqp->pbl_vbase = NULL;
1097 if (nesqp->sq_kmapped) {
1098 nesqp->sq_kmapped = 0;
1099 kunmap(nesqp->page);
1117 struct nes_qp *nesqp;
1174 mem = kzalloc(sizeof(*nesqp)+NES_SW_CONTEXT_ALIGN-1, GFP_KERNEL);
1184 nesqp = (struct nes_qp *)(unsigned long)u64nesqp;
1185 /* nes_debug(NES_DBG_QP, "nesqp=%p, allocated buffer=%p. Rounded to closest %u\n",
1186 nesqp, mem, NES_SW_CONTEXT_ALIGN); */
1187 nesqp->allocated_buffer = mem;
1192 kfree(nesqp->allocated_buffer);
1200 nesqp->user_mode = 1;
1217 kfree(nesqp->allocated_buffer);
1223 nesqp->mmap_sq_db_index =
1228 if (nesqp->mmap_sq_db_index >= NES_MAX_USER_WQ_REGIONS) {
1237 kfree(nesqp->allocated_buffer);
1240 set_bit(nesqp->mmap_sq_db_index, nes_ucontext->allocated_wqs);
1241 nes_ucontext->mmap_nesqp[nesqp->mmap_sq_db_index] = nesqp;
1242 nes_ucontext->first_free_wq = nesqp->mmap_sq_db_index + 1;
1245 kfree(nesqp->allocated_buffer);
1249 err = (!virt_wqs) ? nes_setup_mmap_qp(nesqp, nesvnic, sq_size, rq_size) :
1250 nes_setup_virt_qp(nesqp, nespbl, nesvnic, sq_size, rq_size);
1255 kfree(nesqp->allocated_buffer);
1259 nesqp->hwqp.sq_size = sq_size;
1260 nesqp->hwqp.sq_encoded_size = sq_encoded_size;
1261 nesqp->hwqp.sq_head = 1;
1262 nesqp->hwqp.rq_size = rq_size;
1263 nesqp->hwqp.rq_encoded_size = rq_encoded_size;
1264 /* nes_debug(NES_DBG_QP, "nesqp->nesqp_context_pbase = %p\n",
1265 (void *)nesqp->nesqp_context_pbase);
1267 nesqp->hwqp.qp_id = qp_num;
1268 nesqp->ibqp.qp_num = nesqp->hwqp.qp_id;
1269 nesqp->nespd = nespd;
1272 nesqp->nesscq = nescq;
1274 nesqp->nesrcq = nescq;
1276 nesqp->nesqp_context->misc |= cpu_to_le32((u32)PCI_FUNC(nesdev->pcidev->devfn) <<
1278 nesqp->nesqp_context->misc |= cpu_to_le32((u32)nesqp->hwqp.rq_encoded_size <<
1280 nesqp->nesqp_context->misc |= cpu_to_le32((u32)nesqp->hwqp.sq_encoded_size <<
1283 nesqp->nesqp_context->misc |= cpu_to_le32(NES_QPCONTEXT_MISC_PRIV_EN);
1284 nesqp->nesqp_context->misc |= cpu_to_le32(NES_QPCONTEXT_MISC_FAST_REGISTER_EN);
1286 nesqp->nesqp_context->cqs = cpu_to_le32(nesqp->nesscq->hw_cq.cq_number +
1287 ((u32)nesqp->nesrcq->hw_cq.cq_number << 16));
1288 u64temp = (u64)nesqp->hwqp.sq_pbase;
1289 nesqp->nesqp_context->sq_addr_low = cpu_to_le32((u32)u64temp);
1290 nesqp->nesqp_context->sq_addr_high = cpu_to_le32((u32)(u64temp >> 32));
1294 u64temp = (u64)nesqp->hwqp.sq_pbase;
1295 nesqp->nesqp_context->sq_addr_low = cpu_to_le32((u32)u64temp);
1296 nesqp->nesqp_context->sq_addr_high = cpu_to_le32((u32)(u64temp >> 32));
1297 u64temp = (u64)nesqp->hwqp.rq_pbase;
1298 nesqp->nesqp_context->rq_addr_low = cpu_to_le32((u32)u64temp);
1299 nesqp->nesqp_context->rq_addr_high = cpu_to_le32((u32)(u64temp >> 32));
1301 u64temp = (u64)nesqp->pbl_pbase;
1302 nesqp->nesqp_context->rq_addr_low = cpu_to_le32((u32)u64temp);
1303 nesqp->nesqp_context->rq_addr_high = cpu_to_le32((u32)(u64temp >> 32));
1310 nesqp->nesqp_context->misc2 |= cpu_to_le32(
1320 nesqp->nesqp_context->pd_index_wscale |= cpu_to_le32((u32)nesqp->nespd->pd_id << 16);
1321 u64temp = (u64)nesqp->hwqp.q2_pbase;
1322 nesqp->nesqp_context->q2_addr_low = cpu_to_le32((u32)u64temp);
1323 nesqp->nesqp_context->q2_addr_high = cpu_to_le32((u32)(u64temp >> 32));
1324 nesqp->nesqp_context->aeq_token_low = cpu_to_le32((u32)((unsigned long)(nesqp)));
1325 nesqp->nesqp_context->aeq_token_high = cpu_to_le32((u32)(upper_32_bits((unsigned long)(nesqp))));
1326 nesqp->nesqp_context->ird_ord_sizes = cpu_to_le32(NES_QPCONTEXT_ORDIRD_ALSMM |
1332 nesqp->nesqp_context->ird_ord_sizes |= cpu_to_le32(NES_QPCONTEXT_ORDIRD_RNMC);
1341 nes_free_qp_mem(nesdev, nesqp,virt_wqs);
1342 kfree(nesqp->allocated_buffer);
1358 set_wqe_32bit_value(cqp_wqe->wqe_words, NES_CQP_WQE_ID_IDX, nesqp->hwqp.qp_id);
1360 u64temp = (u64)nesqp->nesqp_context_pbase;
1368 nesqp->hwqp.qp_id);
1374 nesqp->hwqp.qp_id, ret, nesdev->cqp.sq_head, nesdev->cqp.sq_tail,
1379 nes_free_qp_mem(nesdev, nesqp,virt_wqs);
1380 kfree(nesqp->allocated_buffer);
1391 uresp.mmap_sq_db_index = nesqp->mmap_sq_db_index;
1394 uresp.qp_id = nesqp->hwqp.qp_id;
1398 nes_free_qp_mem(nesdev, nesqp,virt_wqs);
1399 kfree(nesqp->allocated_buffer);
1405 nesqp->hwqp.qp_id, nesqp, (u32)sizeof(*nesqp));
1406 spin_lock_init(&nesqp->lock);
1407 nes_add_ref(&nesqp->ibqp);
1414 nesqp->sig_all = (init_attr->sq_sig_type == IB_SIGNAL_ALL_WR);
1417 nesdev->nesadapter->qp_table[nesqp->hwqp.qp_id-NES_FIRST_QPN] = nesqp;
1421 return &nesqp->ibqp;
1428 static void nes_clean_cq(struct nes_qp *nesqp, struct nes_cq *nescq)
1445 if (u64temp == (u64)(unsigned long)nesqp) {
1464 struct nes_qp *nesqp = to_nesqp(ibqp);
1472 nesqp->destroyed = 1;
1475 if (nesqp->ibqp_state >= IB_QPS_INIT && nesqp->ibqp_state <= IB_QPS_RTS) {
1476 /* if (nesqp->ibqp_state == IB_QPS_RTS) { */
1478 nes_modify_qp(&nesqp->ibqp, &attr, IB_QP_STATE, NULL);
1481 if (((nesqp->ibqp_state == IB_QPS_INIT) ||
1482 (nesqp->ibqp_state == IB_QPS_RTR)) && (nesqp->cm_id)) {
1483 cm_id = nesqp->cm_id;
1493 nesqp->hwqp.qp_id, cm_id, atomic_read(&nesqp->refcount));
1501 if (nesqp->user_mode) {
1504 clear_bit(nesqp->mmap_sq_db_index, nes_ucontext->allocated_wqs);
1505 nes_ucontext->mmap_nesqp[nesqp->mmap_sq_db_index] = NULL;
1506 if (nes_ucontext->first_free_wq > nesqp->mmap_sq_db_index) {
1507 nes_ucontext->first_free_wq = nesqp->mmap_sq_db_index;
1510 if (nesqp->pbl_pbase && nesqp->sq_kmapped) {
1511 nesqp->sq_kmapped = 0;
1512 kunmap(nesqp->page);
1516 if (nesqp->nesscq)
1517 nes_clean_cq(nesqp, nesqp->nesscq);
1519 if ((nesqp->nesrcq) && (nesqp->nesrcq != nesqp->nesscq))
1520 nes_clean_cq(nesqp, nesqp->nesrcq);
1523 nes_rem_ref(&nesqp->ibqp);
2815 struct nes_qp *nesqp = to_nesqp(ibqp);
2820 attr->cap.max_send_wr = nesqp->hwqp.sq_size;
2821 attr->cap.max_recv_wr = nesqp->hwqp.rq_size;
2828 init_attr->event_handler = nesqp->ibqp.event_handler;
2829 init_attr->qp_context = nesqp->ibqp.qp_context;
2830 init_attr->send_cq = nesqp->ibqp.send_cq;
2831 init_attr->recv_cq = nesqp->ibqp.recv_cq;
2832 init_attr->srq = nesqp->ibqp.srq = nesqp->ibqp.srq;
2842 int nes_hw_modify_qp(struct nes_device *nesdev, struct nes_qp *nesqp,
2846 /* struct iw_cm_id *cm_id = nesqp->cm_id; */
2853 nesqp->hwqp.qp_id, atomic_read(&nesqp->refcount));
2872 set_wqe_32bit_value(cqp_wqe->wqe_words, NES_CQP_WQE_ID_IDX, nesqp->hwqp.qp_id);
2873 set_wqe_64bit_value(cqp_wqe->wqe_words, NES_CQP_QP_WQE_CONTEXT_LOW_IDX, (u64)nesqp->nesqp_context_pbase);
2888 nesqp->hwqp.qp_id); */
2893 nesqp->hwqp.qp_id, ret, cqp_request->major_code, cqp_request->minor_code);
2898 nesqp->hwqp.qp_id, cqp_request->major_code,
2922 struct nes_qp *nesqp = to_nesqp(ibqp);
2937 nesqp->hwqp.qp_id, attr->qp_state, nesqp->ibqp_state,
2938 nesqp->iwarp_state, atomic_read(&nesqp->refcount));
2940 spin_lock_irqsave(&nesqp->lock, qplockflags);
2944 nesqp->hwqp.qp_id, nesqp->hw_iwarp_state,
2945 nesqp->hw_tcp_state, attr->qp_access_flags, attr_mask);
2951 nesqp->hwqp.qp_id);
2952 if (nesqp->iwarp_state > (u32)NES_CQP_QP_IWARP_STATE_IDLE) {
2953 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
2961 nesqp->hwqp.qp_id);
2962 if (nesqp->iwarp_state>(u32)NES_CQP_QP_IWARP_STATE_IDLE) {
2963 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
2971 nesqp->hwqp.qp_id);
2972 if (nesqp->iwarp_state>(u32)NES_CQP_QP_IWARP_STATE_RTS) {
2973 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
2976 if (nesqp->cm_id == NULL) {
2978 nesqp->hwqp.qp_id );
2979 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
2983 if (nesqp->iwarp_state != NES_CQP_QP_IWARP_STATE_RTS)
2987 nesqp->hw_tcp_state = NES_AEQE_TCP_STATE_ESTABLISHED;
2988 nesqp->hw_iwarp_state = NES_AEQE_IWARP_STATE_RTS;
2989 nesqp->hte_added = 1;
2994 nesqp->hwqp.qp_id, nesqp->hwqp.sq_head, nesqp->hwqp.sq_tail);
2995 if (nesqp->iwarp_state == (u32)NES_CQP_QP_IWARP_STATE_CLOSING) {
2996 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
2999 if (nesqp->iwarp_state > (u32)NES_CQP_QP_IWARP_STATE_CLOSING) {
3002 nesqp->hwqp.qp_id);
3003 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
3006 if (nesqp->hw_iwarp_state != NES_AEQE_IWARP_STATE_RTS) {
3009 nesqp->hwqp.qp_id);
3012 switch (nesqp->hw_iwarp_state) {
3023 nesqp->hw_iwarp_state = NES_AEQE_IWARP_STATE_CLOSING;
3030 nesqp->hwqp.qp_id);
3031 if (nesqp->iwarp_state>=(u32)NES_CQP_QP_IWARP_STATE_TERMINATE) {
3032 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
3037 nesqp->hw_iwarp_state = NES_AEQE_IWARP_STATE_TERMINATE;
3042 if (nesqp->iwarp_state == (u32)NES_CQP_QP_IWARP_STATE_ERROR) {
3043 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
3047 nesqp->hwqp.qp_id);
3048 if (nesqp->term_flags)
3049 del_timer(&nesqp->terminate_timer);
3053 if (nesqp->hte_added) {
3056 nesqp->hte_added = 0;
3058 if ((nesqp->hw_tcp_state > NES_AEQE_TCP_STATE_CLOSED) &&
3060 (nesqp->hw_tcp_state != NES_AEQE_TCP_STATE_TIME_WAIT)) {
3064 nesqp->hwqp.qp_id, nesqp->hw_tcp_state);
3068 nesqp->hw_iwarp_state = NES_AEQE_IWARP_STATE_ERROR;
3071 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
3076 nesqp->ibqp_state = attr->qp_state;
3077 if (((nesqp->iwarp_state & NES_CQP_QP_IWARP_STATE_MASK) ==
3081 nesqp->iwarp_state = next_iwarp_state & NES_CQP_QP_IWARP_STATE_MASK;
3082 nes_debug(NES_DBG_MOD_QP, "Change nesqp->iwarp_state=%08x\n",
3083 nesqp->iwarp_state);
3085 nesqp->iwarp_state = next_iwarp_state & NES_CQP_QP_IWARP_STATE_MASK;
3086 nes_debug(NES_DBG_MOD_QP, "Change nesqp->iwarp_state=%08x\n",
3087 nesqp->iwarp_state);
3093 nesqp->nesqp_context->misc |= cpu_to_le32(NES_QPCONTEXT_MISC_RDMA_WRITE_EN |
3098 nesqp->nesqp_context->misc |= cpu_to_le32(NES_QPCONTEXT_MISC_RDMA_WRITE_EN);
3102 nesqp->nesqp_context->misc |= cpu_to_le32(NES_QPCONTEXT_MISC_RDMA_READ_EN);
3106 nesqp->nesqp_context->misc |= cpu_to_le32(NES_QPCONTEXT_MISC_WBIND_EN);
3110 if (nesqp->user_mode) {
3111 nesqp->nesqp_context->misc |= cpu_to_le32(NES_QPCONTEXT_MISC_RDMA_WRITE_EN |
3117 original_last_aeq = nesqp->last_aeq;
3118 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
3127 ret = nes_hw_modify_qp(nesdev, nesqp, next_iwarp_state, 0, 1);
3131 next_iwarp_state, nesqp->hwqp.qp_id);
3135 if ((issue_modify_qp) && (nesqp->ibqp_state > IB_QPS_RTS)) {
3138 nesqp->hwqp.qp_id, atomic_read(&nesqp->refcount),
3139 original_last_aeq, nesqp->last_aeq);
3144 if (nesqp->cm_id && nesqp->hw_tcp_state != 0) {
3147 nesqp->hwqp.qp_id, atomic_read(&nesqp->refcount),
3148 original_last_aeq, nesqp->last_aeq);
3150 spin_lock_irqsave(&nesqp->lock, qplockflags);
3151 nesqp->hw_tcp_state = NES_AEQE_TCP_STATE_CLOSED;
3152 nesqp->last_aeq = NES_AEQE_AEID_RESET_SENT;
3153 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
3154 nes_cm_disconn(nesqp);
3157 nesqp->hwqp.qp_id, atomic_read(&nesqp->refcount));
3160 spin_lock_irqsave(&nesqp->lock, qplockflags);
3161 if (nesqp->cm_id) {
3163 if (atomic_inc_return(&nesqp->close_timer_started) == 1) {
3164 nesqp->cm_id->add_ref(nesqp->cm_id);
3168 nesqp->hwqp.qp_id, atomic_read(&nesqp->refcount),
3169 original_last_aeq, nesqp->last_aeq);
3170 schedule_nes_timer(nesqp->cm_node, (struct sk_buff *) nesqp, NES_TIMER_TYPE_CLOSE, 1, 0);
3172 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
3174 spin_unlock_irqrestore(&nesqp->lock, qplockflags);
3178 nesqp->hwqp.qp_id, atomic_read(&nesqp->refcount),
3179 original_last_aeq, nesqp->last_aeq);
3185 nesqp->hwqp.qp_id, atomic_read(&nesqp->refcount),
3186 original_last_aeq, nesqp->last_aeq);
3191 nesqp->hwqp.qp_id, atomic_read(&nesqp->refcount),
3192 original_last_aeq, nesqp->last_aeq);
3198 nesqp->hwqp.qp_id, atomic_read(&nesqp->refcount));
3269 struct nes_qp *nesqp = to_nesqp(ibqp);
3272 u32 qsize = nesqp->hwqp.sq_size;
3278 if (nesqp->ibqp_state > IB_QPS_RTS) {
3283 spin_lock_irqsave(&nesqp->lock, flags);
3285 head = nesqp->hwqp.sq_head;
3289 if (nesqp->term_flags) {
3295 if (((head + (2 * qsize) - nesqp->hwqp.sq_tail) % qsize) == (qsize - 1)) {
3300 wqe = &nesqp->hwqp.sq_vbase[head];
3302 nesqp->hwqp.qp_id, wqe, head); */
3303 nes_fill_init_qp_wqe(wqe, nesqp, head);
3506 if ((ib_wr->send_flags & IB_SEND_SIGNALED) || nesqp->sig_all)
3519 nesqp->hwqp.sq_head = head;
3525 (counter << 24) | 0x00800000 | nesqp->hwqp.qp_id);
3528 spin_unlock_irqrestore(&nesqp->lock, flags);
3547 struct nes_qp *nesqp = to_nesqp(ibqp);
3551 u32 qsize = nesqp->hwqp.rq_size;
3557 if (nesqp->ibqp_state > IB_QPS_RTS) {
3562 spin_lock_irqsave(&nesqp->lock, flags);
3564 head = nesqp->hwqp.rq_head;
3568 if (nesqp->term_flags) {
3578 if (((head + (2 * qsize) - nesqp->hwqp.rq_tail) % qsize) == (qsize - 1)) {
3584 wqe = &nesqp->hwqp.rq_vbase[head];
3587 nesqp->hwqp.qp_id, wqe, head); */
3588 nes_fill_init_qp_wqe(wqe, nesqp, head);
3613 nesqp->hwqp.rq_head = head;
3618 nes_write32(nesdev->regs+NES_WQE_ALLOC, (counter<<24) | nesqp->hwqp.qp_id);
3621 spin_unlock_irqrestore(&nesqp->lock, flags);
3641 struct nes_qp *nesqp;
3679 nesqp = (struct nes_qp *)(unsigned long)u64temp;
3696 entry->qp = &nesqp->ibqp;
3697 entry->src_qp = nesqp->hwqp.qp_id;
3700 if (nesqp->skip_lsmm) {
3701 nesqp->skip_lsmm = 0;
3702 nesqp->hwqp.sq_tail++;
3706 wrid = (((u64)(cpu_to_le32((u32)nesqp->hwqp.sq_vbase[wqe_index].
3708 ((u64)(cpu_to_le32((u32)nesqp->hwqp.sq_vbase[wqe_index].
3710 entry->byte_len = le32_to_cpu(nesqp->hwqp.sq_vbase[wqe_index].
3713 switch (le32_to_cpu(nesqp->hwqp.sq_vbase[wqe_index].
3722 entry->byte_len = le32_to_cpu(nesqp->hwqp.sq_vbase[wqe_index].
3740 nesqp->hwqp.sq_tail = (wqe_index+1)&(nesqp->hwqp.sq_size - 1);
3741 if ((entry->status != IB_WC_SUCCESS) && (nesqp->hwqp.sq_tail != nesqp->hwqp.sq_head)) {
3743 wq_tail = nesqp->hwqp.sq_tail;
3748 wrid = ((u64)(le32_to_cpu(nesqp->hwqp.rq_vbase[wqe_index].wqe_words[NES_IWARP_RQ_WQE_COMP_SCRATCH_LOW_IDX]))) |
3749 ((u64)(le32_to_cpu(nesqp->hwqp.rq_vbase[wqe_index].wqe_words[NES_IWARP_RQ_WQE_COMP_SCRATCH_HIGH_IDX]))<<32);
3752 nesqp->hwqp.rq_tail = (wqe_index+1)&(nesqp->hwqp.rq_size - 1);
3753 if ((entry->status != IB_WC_SUCCESS) && (nesqp->hwqp.rq_tail != nesqp->hwqp.rq_head)) {
3755 wq_tail = nesqp->hwqp.rq_tail;