Lines Matching refs:sriov
143 struct qlcnic_sriov *sriov; in qlcnic_sriov_init() local
153 sriov = kzalloc(sizeof(struct qlcnic_sriov), GFP_KERNEL); in qlcnic_sriov_init()
154 if (!sriov) in qlcnic_sriov_init()
157 adapter->ahw->sriov = sriov; in qlcnic_sriov_init()
158 sriov->num_vfs = num_vfs; in qlcnic_sriov_init()
159 bc = &sriov->bc; in qlcnic_sriov_init()
160 sriov->vf_info = kcalloc(num_vfs, sizeof(struct qlcnic_vf_info), in qlcnic_sriov_init()
162 if (!sriov->vf_info) { in qlcnic_sriov_init()
191 vf = &sriov->vf_info[i]; in qlcnic_sriov_init()
210 sriov->vf_info[i].vp = vp; in qlcnic_sriov_init()
231 kfree(sriov->vf_info); in qlcnic_sriov_init()
234 kfree(adapter->ahw->sriov); in qlcnic_sriov_init()
262 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in __qlcnic_sriov_cleanup() local
263 struct qlcnic_back_channel *bc = &sriov->bc; in __qlcnic_sriov_cleanup()
273 for (i = 0; i < sriov->num_vfs; i++) { in __qlcnic_sriov_cleanup()
274 vf = &sriov->vf_info[i]; in __qlcnic_sriov_cleanup()
282 for (i = 0; i < sriov->num_vfs; i++) in __qlcnic_sriov_cleanup()
283 kfree(sriov->vf_info[i].vp); in __qlcnic_sriov_cleanup()
285 kfree(sriov->vf_info); in __qlcnic_sriov_cleanup()
286 kfree(adapter->ahw->sriov); in __qlcnic_sriov_cleanup()
435 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_set_guest_vlan_mode() local
439 if (sriov->allowed_vlans) in qlcnic_sriov_set_guest_vlan_mode()
442 sriov->any_vlan = cmd->rsp.arg[2] & 0xf; in qlcnic_sriov_set_guest_vlan_mode()
443 sriov->num_allowed_vlans = cmd->rsp.arg[2] >> 16; in qlcnic_sriov_set_guest_vlan_mode()
445 sriov->num_allowed_vlans); in qlcnic_sriov_set_guest_vlan_mode()
449 if (!sriov->any_vlan) in qlcnic_sriov_set_guest_vlan_mode()
452 num_vlans = sriov->num_allowed_vlans; in qlcnic_sriov_set_guest_vlan_mode()
453 sriov->allowed_vlans = kcalloc(num_vlans, sizeof(u16), GFP_KERNEL); in qlcnic_sriov_set_guest_vlan_mode()
454 if (!sriov->allowed_vlans) in qlcnic_sriov_set_guest_vlan_mode()
459 sriov->allowed_vlans[i] = vlans[i]; in qlcnic_sriov_set_guest_vlan_mode()
466 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_get_vf_acl() local
480 sriov->vlan_mode = cmd.rsp.arg[1] & 0x3; in qlcnic_sriov_get_vf_acl()
481 switch (sriov->vlan_mode) { in qlcnic_sriov_get_vf_acl()
682 struct qlcnic_vf_info *vf_info = adapter->ahw->sriov->vf_info; in qlcnic_sriov_func_to_index()
688 for (i = 0; i < adapter->ahw->sriov->num_vfs; i++) { in qlcnic_sriov_func_to_index()
847 static void qlcnic_sriov_schedule_bc_cmd(struct qlcnic_sriov *sriov, in qlcnic_sriov_schedule_bc_cmd() argument
855 queue_work(sriov->bc.bc_trans_wq, &vf->trans_work); in qlcnic_sriov_schedule_bc_cmd()
1017 vf = &adapter->ahw->sriov->vf_info[index]; in qlcnic_sriov_send_bc_cmd()
1084 qlcnic_sriov_schedule_bc_cmd(adapter->ahw->sriov, vf, in qlcnic_sriov_process_bc_cmd()
1120 int __qlcnic_sriov_add_act_list(struct qlcnic_sriov *sriov, in __qlcnic_sriov_add_act_list() argument
1129 qlcnic_sriov_schedule_bc_cmd(sriov, vf, in __qlcnic_sriov_add_act_list()
1134 static int qlcnic_sriov_add_act_list(struct qlcnic_sriov *sriov, in qlcnic_sriov_add_act_list() argument
1142 __qlcnic_sriov_add_act_list(sriov, vf, trans); in qlcnic_sriov_add_act_list()
1148 static void qlcnic_sriov_handle_pending_trans(struct qlcnic_sriov *sriov, in qlcnic_sriov_handle_pending_trans() argument
1186 if (qlcnic_sriov_add_act_list(sriov, vf, trans)) in qlcnic_sriov_handle_pending_trans()
1192 static void qlcnic_sriov_handle_bc_cmd(struct qlcnic_sriov *sriov, in qlcnic_sriov_handle_bc_cmd() argument
1212 qlcnic_sriov_handle_pending_trans(sriov, vf, hdr); in qlcnic_sriov_handle_bc_cmd()
1254 if (qlcnic_sriov_add_act_list(sriov, vf, trans)) { in qlcnic_sriov_handle_bc_cmd()
1266 static void qlcnic_sriov_handle_msg_event(struct qlcnic_sriov *sriov, in qlcnic_sriov_handle_msg_event() argument
1279 qlcnic_sriov_handle_bc_cmd(sriov, &hdr, vf); in qlcnic_sriov_handle_msg_event()
1287 static void qlcnic_sriov_handle_flr_event(struct qlcnic_sriov *sriov, in qlcnic_sriov_handle_flr_event() argument
1293 qlcnic_sriov_pf_handle_flr(sriov, vf); in qlcnic_sriov_handle_flr_event()
1302 struct qlcnic_sriov *sriov; in qlcnic_sriov_handle_bc_event() local
1306 sriov = adapter->ahw->sriov; in qlcnic_sriov_handle_bc_event()
1313 vf = &sriov->vf_info[index]; in qlcnic_sriov_handle_bc_event()
1320 qlcnic_sriov_handle_flr_event(sriov, vf); in qlcnic_sriov_handle_bc_event()
1325 qlcnic_sriov_handle_msg_event(sriov, vf); in qlcnic_sriov_handle_bc_event()
1383 u16 seq = ++adapter->ahw->sriov->bc.trans_counter; in __qlcnic_sriov_issue_cmd()
1471 struct qlcnic_vf_info *vf = &adapter->ahw->sriov->vf_info[0]; in qlcnic_sriov_channel_cfg_cmd()
1503 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_vf_add_mc_list() local
1508 vf = &adapter->ahw->sriov->vf_info[0]; in qlcnic_vf_add_mc_list()
1514 for (i = 0; i < sriov->num_allowed_vlans; i++) { in qlcnic_vf_add_mc_list()
1666 struct qlcnic_back_channel *bc = &adapter->ahw->sriov->bc; in qlcnic_sriov_async_issue_cmd()
1951 static int qlcnic_sriov_check_vlan_id(struct qlcnic_sriov *sriov, in qlcnic_sriov_check_vlan_id() argument
1961 for (i = 0; i < sriov->num_allowed_vlans; i++) { in qlcnic_sriov_check_vlan_id()
1972 static int qlcnic_sriov_validate_num_vlans(struct qlcnic_sriov *sriov, in qlcnic_sriov_validate_num_vlans() argument
1979 if (vf->num_vlan >= sriov->num_allowed_vlans) in qlcnic_sriov_validate_num_vlans()
1989 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_validate_vlan_cfg() local
1995 vf = &adapter->ahw->sriov->vf_info[0]; in qlcnic_sriov_validate_vlan_cfg()
1997 if (sriov->vlan_mode != QLC_GUEST_VLAN_MODE) in qlcnic_sriov_validate_vlan_cfg()
2004 if (qlcnic_sriov_validate_num_vlans(sriov, vf)) in qlcnic_sriov_validate_vlan_cfg()
2007 if (sriov->any_vlan) { in qlcnic_sriov_validate_vlan_cfg()
2008 for (i = 0; i < sriov->num_allowed_vlans; i++) { in qlcnic_sriov_validate_vlan_cfg()
2009 if (sriov->allowed_vlans[i] == vid) in qlcnic_sriov_validate_vlan_cfg()
2017 if (!vlan_exist || qlcnic_sriov_check_vlan_id(sriov, vf, vid)) in qlcnic_sriov_validate_vlan_cfg()
2028 struct qlcnic_sriov *sriov; in qlcnic_sriov_vlan_operation() local
2030 sriov = adapter->ahw->sriov; in qlcnic_sriov_vlan_operation()
2039 qlcnic_sriov_add_vlan_id(sriov, vf, vlan_id); in qlcnic_sriov_vlan_operation()
2042 qlcnic_sriov_del_vlan_id(sriov, vf, vlan_id); in qlcnic_sriov_vlan_operation()
2055 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_cfg_vf_guest_vlan() local
2065 vf = &adapter->ahw->sriov->vf_info[0]; in qlcnic_sriov_cfg_vf_guest_vlan()
2077 qlcnic_sriov_cleanup_async_list(&sriov->bc); in qlcnic_sriov_cfg_vf_guest_vlan()
2169 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_alloc_vlans() local
2173 for (i = 0; i < sriov->num_vfs; i++) { in qlcnic_sriov_alloc_vlans()
2174 vf = &sriov->vf_info[i]; in qlcnic_sriov_alloc_vlans()
2175 vf->sriov_vlans = kcalloc(sriov->num_allowed_vlans, in qlcnic_sriov_alloc_vlans()
2182 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_free_vlans() local
2186 for (i = 0; i < sriov->num_vfs; i++) { in qlcnic_sriov_free_vlans()
2187 vf = &sriov->vf_info[i]; in qlcnic_sriov_free_vlans()
2193 void qlcnic_sriov_add_vlan_id(struct qlcnic_sriov *sriov, in qlcnic_sriov_add_vlan_id() argument
2198 for (i = 0; i < sriov->num_allowed_vlans; i++) { in qlcnic_sriov_add_vlan_id()
2207 void qlcnic_sriov_del_vlan_id(struct qlcnic_sriov *sriov, in qlcnic_sriov_del_vlan_id() argument
2212 for (i = 0; i < sriov->num_allowed_vlans; i++) { in qlcnic_sriov_del_vlan_id()