Lines Matching refs:iwdev

56  * @iwdev: iwarp device
61 int i40iw_arp_table(struct i40iw_device *iwdev,
78 for (arp_index = 0; (u32)arp_index < iwdev->arp_table_size; arp_index++)
79 if (memcmp(iwdev->arp_table[arp_index].ip_addr, ip, sizeof(ip)) == 0)
83 if (arp_index != iwdev->arp_table_size)
87 err = i40iw_alloc_resource(iwdev, iwdev->allocated_arps,
88 iwdev->arp_table_size,
90 &iwdev->next_arp_index);
95 memcpy(iwdev->arp_table[arp_index].ip_addr, ip, sizeof(ip));
96 ether_addr_copy(iwdev->arp_table[arp_index].mac_addr, mac_addr);
99 if (arp_index == iwdev->arp_table_size)
103 if (arp_index == iwdev->arp_table_size)
105 memset(iwdev->arp_table[arp_index].ip_addr, 0,
106 sizeof(iwdev->arp_table[arp_index].ip_addr));
107 eth_zero_addr(iwdev->arp_table[arp_index].mac_addr);
108 i40iw_free_resource(iwdev, iwdev->allocated_arps, arp_index);
153 struct i40iw_device *iwdev;
162 iwdev = &hdl->device;
163 if (iwdev->init_state < IP_ADDR_REGISTERED || iwdev->closing)
166 netdev = iwdev->ldev->netdev;
201 i40iw_manage_arp_cache(iwdev,
206 i40iw_if_notify(iwdev, netdev, &local_ipaddr, true,
228 struct i40iw_device *iwdev;
237 iwdev = &hdl->device;
238 if (iwdev->init_state < IP_ADDR_REGISTERED || iwdev->closing)
241 netdev = iwdev->ldev->netdev;
252 i40iw_manage_arp_cache(iwdev,
257 i40iw_if_notify(iwdev, netdev, local_ipaddr6, false,
275 struct i40iw_device *iwdev;
285 iwdev = &iwhdl->device;
286 if (iwdev->init_state < IP_ADDR_REGISTERED || iwdev->closing)
291 i40iw_manage_arp_cache(iwdev,
298 i40iw_manage_arp_cache(iwdev,
323 struct i40iw_device *iwdev;
332 iwdev = &hdl->device;
333 if (iwdev->init_state < RDMA_DEV_REGISTERED || iwdev->closing)
336 netdev = iwdev->ldev->netdev;
340 iwdev->iw_status = 1;
344 iwdev->iw_status = 0;
347 i40iw_port_ibevent(iwdev);
401 struct i40iw_device *iwdev = container_of(cqp, struct i40iw_device, cqp);
415 wake_up(&iwdev->close_wq);
438 struct i40iw_device *iwdev = container_of(cqp, struct i40iw_device, cqp);
446 wait_event_timeout(iwdev->close_wq,
453 * @iwdev: iwarp device
455 void i40iw_cleanup_pending_cqp_op(struct i40iw_device *iwdev)
457 struct i40iw_sc_dev *dev = &iwdev->sc_dev;
458 struct i40iw_cqp *cqp = &iwdev->cqp;
482 * @iwdev: iwarp device
485 static int i40iw_wait_event(struct i40iw_device *iwdev,
489 struct i40iw_cqp *iwcqp = &iwdev->cqp;
494 cqp_timeout.compl_cqp_cmds = iwdev->sc_dev.cqp_cmd_stats[OP_COMPLETED_COMMANDS];
500 i40iw_check_cqp_progress(&cqp_timeout, &iwdev->sc_dev);
507 if (!iwdev->reset) {
508 iwdev->reset = true;
509 i40iw_request_reset(iwdev);
528 * @iwdev: iwarp device
531 enum i40iw_status_code i40iw_handle_cqp_op(struct i40iw_device *iwdev,
535 struct i40iw_sc_dev *dev = &iwdev->sc_dev;
540 if (iwdev->reset) {
541 i40iw_free_cqp_request(&iwdev->cqp, cqp_request);
548 i40iw_free_cqp_request(&iwdev->cqp, cqp_request);
552 err_code = i40iw_wait_event(iwdev, cqp_request);
560 * @iwdev: dev for refcount
562 void i40iw_add_devusecount(struct i40iw_device *iwdev)
564 atomic64_inc(&iwdev->use_count);
569 * @iwdev: device
571 void i40iw_rem_devusecount(struct i40iw_device *iwdev)
573 if (!atomic64_dec_and_test(&iwdev->use_count))
575 wake_up(&iwdev->close_wq);
590 * @iwdev: iwarp device
592 void i40iw_rem_pdusecount(struct i40iw_pd *iwpd, struct i40iw_device *iwdev)
596 i40iw_free_resource(iwdev, iwdev->allocated_pds, iwpd->sc_pd.pd_id);
617 struct i40iw_device *iwdev;
622 iwdev = iwqp->iwdev;
623 spin_lock_irqsave(&iwdev->qptable_lock, flags);
625 spin_unlock_irqrestore(&iwdev->qptable_lock, flags);
630 iwdev->qp_table[qp_num] = NULL;
631 spin_unlock_irqrestore(&iwdev->qptable_lock, flags);
643 struct i40iw_device *iwdev = to_iwdev(device);
645 if ((qpn < IW_FIRST_QPN) || (qpn >= iwdev->max_qp))
648 return &iwdev->qp_table[qpn]->ibqp;
796 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
798 cqp_request = i40iw_get_cqp_request(&iwdev->cqp, true);
808 status = i40iw_handle_cqp_op(iwdev, cqp_request);
822 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
828 cqp_request = i40iw_get_cqp_request(&iwdev->cqp, false);
837 status = i40iw_handle_cqp_op(iwdev, cqp_request);
946 * @iwdev: device struct pointer
955 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
957 work = &iwdev->virtchnl_w[iw_vf_idx];
960 queue_work(iwdev->virtchnl_wq, &work->work);
974 struct i40iw_device *iwdev =
986 i40iw_put_cqp_request(&iwdev->cqp, cqp_request);
1000 struct i40iw_device *iwdev =
1005 i40iw_debug(&iwdev->sc_dev, I40IW_DEBUG_HMC, "%s1\n", __func__);
1007 work = &iwdev->virtchnl_w[hmcfcninfo->iw_vf_idx];
1010 queue_work(iwdev->virtchnl_wq, &work->work);
1011 i40iw_debug(&iwdev->sc_dev, I40IW_DEBUG_HMC, "%s2\n", __func__);
1013 i40iw_debug(&iwdev->sc_dev, I40IW_DEBUG_HMC, "%s: Something wrong\n", __func__);
1028 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
1030 i40iw_debug(&iwdev->sc_dev, I40IW_DEBUG_HMC, "%s\n", __func__);
1031 cqp_request = i40iw_get_cqp_request(&iwdev->cqp, false);
1043 status = i40iw_handle_cqp_op(iwdev, cqp_request);
1051 * @iwdev: function device struct
1062 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
1064 cqp_request = i40iw_get_cqp_request(&iwdev->cqp, true);
1076 status = i40iw_handle_cqp_op(iwdev, cqp_request);
1095 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
1097 cqp_request = i40iw_get_cqp_request(&iwdev->cqp, true);
1109 status = i40iw_handle_cqp_op(iwdev, cqp_request);
1117 * @iwdev: function's device struct
1121 struct i40iw_device *iwdev = dev->back_dev;
1124 i40iw_debug(dev, I40IW_DEBUG_VIRT, "%s[%u] dev %p, iwdev %p\n",
1125 __func__, __LINE__, dev, iwdev);
1127 atomic_set(&iwdev->vchnl_msgs, 2);
1128 timeout_ret = wait_event_timeout(iwdev->vchnl_waitq,
1129 (atomic_read(&iwdev->vchnl_msgs) == 1),
1131 atomic_dec(&iwdev->vchnl_msgs);
1134 atomic_set(&iwdev->vchnl_msgs, 0);
1150 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
1151 struct i40iw_cqp *iwcqp = &iwdev->cqp;
1165 status = i40iw_handle_cqp_op(iwdev, cqp_request);
1180 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
1181 struct i40iw_cqp *iwcqp = &iwdev->cqp;
1203 status = i40iw_handle_cqp_op(iwdev, cqp_request);
1216 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
1218 i40iw_cq_wq_destroy(iwdev, cq);
1228 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
1229 struct i40iw_cqp *iwcqp = &iwdev->cqp;
1246 status = i40iw_handle_cqp_op(iwdev, cqp_request);
1260 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
1265 i40iw_gen_ae(iwdev, qp, &info, false);
1315 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
1317 status = i40iw_obj_aligned_mem(iwdev, mem, I40IW_QUERY_FPM_BUF_SIZE,
1357 struct i40iw_device *iwdev = (struct i40iw_device *)dev->back_dev;
1379 cm_node = i40iw_find_node(&iwdev->cm_core, rem_port, rem_addr, loc_port,