Lines Matching refs:iwdev

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