Lines Matching refs:sriov
138 struct qlcnic_sriov *sriov; in qlcnic_sriov_init() local
148 sriov = kzalloc(sizeof(struct qlcnic_sriov), GFP_KERNEL); in qlcnic_sriov_init()
149 if (!sriov) in qlcnic_sriov_init()
152 adapter->ahw->sriov = sriov; in qlcnic_sriov_init()
153 sriov->num_vfs = num_vfs; in qlcnic_sriov_init()
154 bc = &sriov->bc; in qlcnic_sriov_init()
155 sriov->vf_info = kzalloc(sizeof(struct qlcnic_vf_info) * in qlcnic_sriov_init()
157 if (!sriov->vf_info) { in qlcnic_sriov_init()
183 vf = &sriov->vf_info[i]; in qlcnic_sriov_init()
202 sriov->vf_info[i].vp = vp; in qlcnic_sriov_init()
223 kfree(sriov->vf_info); in qlcnic_sriov_init()
226 kfree(adapter->ahw->sriov); in qlcnic_sriov_init()
254 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in __qlcnic_sriov_cleanup() local
255 struct qlcnic_back_channel *bc = &sriov->bc; in __qlcnic_sriov_cleanup()
265 for (i = 0; i < sriov->num_vfs; i++) { in __qlcnic_sriov_cleanup()
266 vf = &sriov->vf_info[i]; in __qlcnic_sriov_cleanup()
274 for (i = 0; i < sriov->num_vfs; i++) in __qlcnic_sriov_cleanup()
275 kfree(sriov->vf_info[i].vp); in __qlcnic_sriov_cleanup()
277 kfree(sriov->vf_info); in __qlcnic_sriov_cleanup()
278 kfree(adapter->ahw->sriov); in __qlcnic_sriov_cleanup()
427 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_set_guest_vlan_mode() local
431 if (sriov->allowed_vlans) in qlcnic_sriov_set_guest_vlan_mode()
434 sriov->any_vlan = cmd->rsp.arg[2] & 0xf; in qlcnic_sriov_set_guest_vlan_mode()
435 sriov->num_allowed_vlans = cmd->rsp.arg[2] >> 16; in qlcnic_sriov_set_guest_vlan_mode()
437 sriov->num_allowed_vlans); in qlcnic_sriov_set_guest_vlan_mode()
441 if (!sriov->any_vlan) in qlcnic_sriov_set_guest_vlan_mode()
444 num_vlans = sriov->num_allowed_vlans; in qlcnic_sriov_set_guest_vlan_mode()
445 sriov->allowed_vlans = kzalloc(sizeof(u16) * num_vlans, GFP_KERNEL); in qlcnic_sriov_set_guest_vlan_mode()
446 if (!sriov->allowed_vlans) in qlcnic_sriov_set_guest_vlan_mode()
451 sriov->allowed_vlans[i] = vlans[i]; in qlcnic_sriov_set_guest_vlan_mode()
458 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_get_vf_acl() local
472 sriov->vlan_mode = cmd.rsp.arg[1] & 0x3; in qlcnic_sriov_get_vf_acl()
473 switch (sriov->vlan_mode) { in qlcnic_sriov_get_vf_acl()
674 struct qlcnic_vf_info *vf_info = adapter->ahw->sriov->vf_info; in qlcnic_sriov_func_to_index()
680 for (i = 0; i < adapter->ahw->sriov->num_vfs; i++) { in qlcnic_sriov_func_to_index()
839 static void qlcnic_sriov_schedule_bc_cmd(struct qlcnic_sriov *sriov, in qlcnic_sriov_schedule_bc_cmd() argument
847 queue_work(sriov->bc.bc_trans_wq, &vf->trans_work); in qlcnic_sriov_schedule_bc_cmd()
1009 vf = &adapter->ahw->sriov->vf_info[index]; in qlcnic_sriov_send_bc_cmd()
1076 qlcnic_sriov_schedule_bc_cmd(adapter->ahw->sriov, vf, in qlcnic_sriov_process_bc_cmd()
1112 int __qlcnic_sriov_add_act_list(struct qlcnic_sriov *sriov, in __qlcnic_sriov_add_act_list() argument
1121 qlcnic_sriov_schedule_bc_cmd(sriov, vf, in __qlcnic_sriov_add_act_list()
1126 static int qlcnic_sriov_add_act_list(struct qlcnic_sriov *sriov, in qlcnic_sriov_add_act_list() argument
1134 __qlcnic_sriov_add_act_list(sriov, vf, trans); in qlcnic_sriov_add_act_list()
1140 static void qlcnic_sriov_handle_pending_trans(struct qlcnic_sriov *sriov, in qlcnic_sriov_handle_pending_trans() argument
1178 if (qlcnic_sriov_add_act_list(sriov, vf, trans)) in qlcnic_sriov_handle_pending_trans()
1184 static void qlcnic_sriov_handle_bc_cmd(struct qlcnic_sriov *sriov, in qlcnic_sriov_handle_bc_cmd() argument
1204 qlcnic_sriov_handle_pending_trans(sriov, vf, hdr); in qlcnic_sriov_handle_bc_cmd()
1246 if (qlcnic_sriov_add_act_list(sriov, vf, trans)) { in qlcnic_sriov_handle_bc_cmd()
1258 static void qlcnic_sriov_handle_msg_event(struct qlcnic_sriov *sriov, in qlcnic_sriov_handle_msg_event() argument
1271 qlcnic_sriov_handle_bc_cmd(sriov, &hdr, vf); in qlcnic_sriov_handle_msg_event()
1279 static void qlcnic_sriov_handle_flr_event(struct qlcnic_sriov *sriov, in qlcnic_sriov_handle_flr_event() argument
1285 qlcnic_sriov_pf_handle_flr(sriov, vf); in qlcnic_sriov_handle_flr_event()
1294 struct qlcnic_sriov *sriov; in qlcnic_sriov_handle_bc_event() local
1298 sriov = adapter->ahw->sriov; in qlcnic_sriov_handle_bc_event()
1305 vf = &sriov->vf_info[index]; in qlcnic_sriov_handle_bc_event()
1312 qlcnic_sriov_handle_flr_event(sriov, vf); in qlcnic_sriov_handle_bc_event()
1317 qlcnic_sriov_handle_msg_event(sriov, vf); in qlcnic_sriov_handle_bc_event()
1375 u16 seq = ++adapter->ahw->sriov->bc.trans_counter; in __qlcnic_sriov_issue_cmd()
1463 struct qlcnic_vf_info *vf = &adapter->ahw->sriov->vf_info[0]; in qlcnic_sriov_channel_cfg_cmd()
1495 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_vf_add_mc_list() local
1500 vf = &adapter->ahw->sriov->vf_info[0]; in qlcnic_vf_add_mc_list()
1506 for (i = 0; i < sriov->num_allowed_vlans; i++) { in qlcnic_vf_add_mc_list()
1647 struct qlcnic_back_channel *bc = &adapter->ahw->sriov->bc; in qlcnic_sriov_async_issue_cmd()
1932 static int qlcnic_sriov_check_vlan_id(struct qlcnic_sriov *sriov, in qlcnic_sriov_check_vlan_id() argument
1942 for (i = 0; i < sriov->num_allowed_vlans; i++) { in qlcnic_sriov_check_vlan_id()
1953 static int qlcnic_sriov_validate_num_vlans(struct qlcnic_sriov *sriov, in qlcnic_sriov_validate_num_vlans() argument
1960 if (vf->num_vlan >= sriov->num_allowed_vlans) in qlcnic_sriov_validate_num_vlans()
1970 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_validate_vlan_cfg() local
1976 vf = &adapter->ahw->sriov->vf_info[0]; in qlcnic_sriov_validate_vlan_cfg()
1978 if (sriov->vlan_mode != QLC_GUEST_VLAN_MODE) in qlcnic_sriov_validate_vlan_cfg()
1985 if (qlcnic_sriov_validate_num_vlans(sriov, vf)) in qlcnic_sriov_validate_vlan_cfg()
1988 if (sriov->any_vlan) { in qlcnic_sriov_validate_vlan_cfg()
1989 for (i = 0; i < sriov->num_allowed_vlans; i++) { in qlcnic_sriov_validate_vlan_cfg()
1990 if (sriov->allowed_vlans[i] == vid) in qlcnic_sriov_validate_vlan_cfg()
1998 if (!vlan_exist || qlcnic_sriov_check_vlan_id(sriov, vf, vid)) in qlcnic_sriov_validate_vlan_cfg()
2009 struct qlcnic_sriov *sriov; in qlcnic_sriov_vlan_operation() local
2011 sriov = adapter->ahw->sriov; in qlcnic_sriov_vlan_operation()
2020 qlcnic_sriov_add_vlan_id(sriov, vf, vlan_id); in qlcnic_sriov_vlan_operation()
2023 qlcnic_sriov_del_vlan_id(sriov, vf, vlan_id); in qlcnic_sriov_vlan_operation()
2036 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_cfg_vf_guest_vlan() local
2046 vf = &adapter->ahw->sriov->vf_info[0]; in qlcnic_sriov_cfg_vf_guest_vlan()
2058 qlcnic_sriov_cleanup_async_list(&sriov->bc); in qlcnic_sriov_cfg_vf_guest_vlan()
2150 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_alloc_vlans() local
2154 for (i = 0; i < sriov->num_vfs; i++) { in qlcnic_sriov_alloc_vlans()
2155 vf = &sriov->vf_info[i]; in qlcnic_sriov_alloc_vlans()
2156 vf->sriov_vlans = kcalloc(sriov->num_allowed_vlans, in qlcnic_sriov_alloc_vlans()
2163 struct qlcnic_sriov *sriov = adapter->ahw->sriov; in qlcnic_sriov_free_vlans() local
2167 for (i = 0; i < sriov->num_vfs; i++) { in qlcnic_sriov_free_vlans()
2168 vf = &sriov->vf_info[i]; in qlcnic_sriov_free_vlans()
2174 void qlcnic_sriov_add_vlan_id(struct qlcnic_sriov *sriov, in qlcnic_sriov_add_vlan_id() argument
2179 for (i = 0; i < sriov->num_allowed_vlans; i++) { in qlcnic_sriov_add_vlan_id()
2188 void qlcnic_sriov_del_vlan_id(struct qlcnic_sriov *sriov, in qlcnic_sriov_del_vlan_id() argument
2193 for (i = 0; i < sriov->num_allowed_vlans; i++) { in qlcnic_sriov_del_vlan_id()