Lines Matching full:bc
143 struct qlcnic_back_channel *bc; in qlcnic_sriov_init() local
158 bc = &sriov->bc; in qlcnic_sriov_init()
166 wq = create_singlethread_workqueue("bc-trans"); in qlcnic_sriov_init()
170 "Cannot create bc-trans workqueue\n"); in qlcnic_sriov_init()
174 bc->bc_trans_wq = wq; in qlcnic_sriov_init()
183 bc->bc_async_wq = wq; in qlcnic_sriov_init()
184 INIT_LIST_HEAD(&bc->async_cmd_list); in qlcnic_sriov_init()
185 INIT_WORK(&bc->vf_async_work, qlcnic_sriov_handle_async_issue_cmd); in qlcnic_sriov_init()
186 spin_lock_init(&bc->queue_lock); in qlcnic_sriov_init()
187 bc->adapter = adapter; in qlcnic_sriov_init()
226 destroy_workqueue(bc->bc_async_wq); in qlcnic_sriov_init()
229 destroy_workqueue(bc->bc_trans_wq); in qlcnic_sriov_init()
264 struct qlcnic_back_channel *bc = &sriov->bc; in __qlcnic_sriov_cleanup() local
271 qlcnic_sriov_cleanup_async_list(bc); in __qlcnic_sriov_cleanup()
272 destroy_workqueue(bc->bc_async_wq); in __qlcnic_sriov_cleanup()
281 destroy_workqueue(bc->bc_trans_wq); in __qlcnic_sriov_cleanup()
857 queue_work(sriov->bc.bc_trans_wq, &vf->trans_work); in qlcnic_sriov_schedule_bc_cmd()
1344 "Failed to %s bc events, err=%d\n", in qlcnic_sriov_cfg_bc_intr()
1381 u16 seq = ++adapter->ahw->sriov->bc.trans_counter; in __qlcnic_sriov_issue_cmd()
1479 "Failed bc channel %s %d\n", cmd_op ? "term" : "init", in qlcnic_sriov_channel_cfg_cmd()
1524 void qlcnic_sriov_cleanup_async_list(struct qlcnic_back_channel *bc) in qlcnic_sriov_cleanup_async_list() argument
1526 struct list_head *head = &bc->async_cmd_list; in qlcnic_sriov_cleanup_async_list()
1529 flush_workqueue(bc->bc_async_wq); in qlcnic_sriov_cleanup_async_list()
1530 cancel_work_sync(&bc->vf_async_work); in qlcnic_sriov_cleanup_async_list()
1532 spin_lock(&bc->queue_lock); in qlcnic_sriov_cleanup_async_list()
1540 spin_unlock(&bc->queue_lock); in qlcnic_sriov_cleanup_async_list()
1601 struct qlcnic_back_channel *bc; in qlcnic_sriov_handle_async_issue_cmd() local
1606 bc = container_of(work, struct qlcnic_back_channel, vf_async_work); in qlcnic_sriov_handle_async_issue_cmd()
1607 head = &bc->async_cmd_list; in qlcnic_sriov_handle_async_issue_cmd()
1609 spin_lock(&bc->queue_lock); in qlcnic_sriov_handle_async_issue_cmd()
1611 spin_unlock(&bc->queue_lock); in qlcnic_sriov_handle_async_issue_cmd()
1616 __qlcnic_sriov_issue_cmd(bc->adapter, cmd); in qlcnic_sriov_handle_async_issue_cmd()
1621 queue_work(bc->bc_async_wq, &bc->vf_async_work); in qlcnic_sriov_handle_async_issue_cmd()
1627 qlcnic_sriov_alloc_async_cmd(struct qlcnic_back_channel *bc, in qlcnic_sriov_alloc_async_cmd() argument
1638 spin_lock(&bc->queue_lock); in qlcnic_sriov_alloc_async_cmd()
1639 list_add_tail(&entry->list, &bc->async_cmd_list); in qlcnic_sriov_alloc_async_cmd()
1640 spin_unlock(&bc->queue_lock); in qlcnic_sriov_alloc_async_cmd()
1645 static void qlcnic_sriov_schedule_async_cmd(struct qlcnic_back_channel *bc, in qlcnic_sriov_schedule_async_cmd() argument
1650 entry = qlcnic_sriov_alloc_async_cmd(bc, cmd); in qlcnic_sriov_schedule_async_cmd()
1657 queue_work(bc->bc_async_wq, &bc->vf_async_work); in qlcnic_sriov_schedule_async_cmd()
1664 struct qlcnic_back_channel *bc = &adapter->ahw->sriov->bc; in qlcnic_sriov_async_issue_cmd() local
1669 qlcnic_sriov_schedule_async_cmd(bc, cmd); in qlcnic_sriov_async_issue_cmd()
2075 qlcnic_sriov_cleanup_async_list(&sriov->bc); in qlcnic_sriov_cfg_vf_guest_vlan()