Lines Matching full:nvdev

39 	struct netvsc_device *nv_dev = rtnl_dereference(net_device_ctx->nvdev);  in netvsc_switch_datapath()
99 struct netvsc_device *nvdev = in netvsc_subchan_work() local
110 rdev = nvdev->extension; in netvsc_subchan_work()
112 ret = rndis_set_subchannel(rdev->ndev, nvdev, NULL); in netvsc_subchan_work()
117 for (i = 1; i < nvdev->num_chn; i++) in netvsc_subchan_work()
118 netif_napi_del(&nvdev->chan_table[i].napi); in netvsc_subchan_work()
120 nvdev->max_chn = 1; in netvsc_subchan_work()
121 nvdev->num_chn = 1; in netvsc_subchan_work()
152 struct netvsc_device *nvdev in free_netvsc_device() local
156 kfree(nvdev->extension); in free_netvsc_device()
158 if (!nvdev->recv_buf_gpadl_handle.decrypted) in free_netvsc_device()
159 vfree(nvdev->recv_buf); in free_netvsc_device()
160 if (!nvdev->send_buf_gpadl_handle.decrypted) in free_netvsc_device()
161 vfree(nvdev->send_buf); in free_netvsc_device()
162 bitmap_free(nvdev->send_section_map); in free_netvsc_device()
165 xdp_rxq_info_unreg(&nvdev->chan_table[i].xdp_rxq); in free_netvsc_device()
166 kfree(nvdev->chan_table[i].recv_buf); in free_netvsc_device()
167 vfree(nvdev->chan_table[i].mrc.slots); in free_netvsc_device()
170 kfree(nvdev); in free_netvsc_device()
173 static void free_netvsc_device_rcu(struct netvsc_device *nvdev) in free_netvsc_device_rcu() argument
175 call_rcu(&nvdev->rcu, free_netvsc_device); in free_netvsc_device_rcu()
694 = rtnl_dereference(net_device_ctx->nvdev); in netvsc_device_remove()
709 RCU_INIT_POINTER(net_device_ctx->nvdev, NULL); in netvsc_device_remove()
1234 = rcu_dereference_bh(ndev_ctx->nvdev); in netvsc_send()
1353 struct netvsc_device *nvdev, in send_recv_completions() argument
1380 if (++mrc->first == nvdev->recv_completion_cnt) in send_recv_completions()
1385 if (unlikely(nvdev->destroy)) in send_recv_completions()
1386 wake_up(&nvdev->wait_drain); in send_recv_completions()
1392 static void recv_comp_slot_avail(const struct netvsc_device *nvdev, in recv_comp_slot_avail() argument
1396 u32 count = nvdev->recv_completion_cnt; in recv_comp_slot_avail()
1408 struct netvsc_device *nvdev, u16 q_idx, in enq_receive_complete() argument
1411 struct netvsc_channel *nvchan = &nvdev->chan_table[q_idx]; in enq_receive_complete()
1416 recv_comp_slot_avail(nvdev, mrc, &filled, &avail); in enq_receive_complete()
1419 send_recv_completions(ndev, nvdev, nvchan); in enq_receive_complete()
1420 recv_comp_slot_avail(nvdev, mrc, &filled, &avail); in enq_receive_complete()
1433 if (++mrc->next == nvdev->recv_completion_cnt) in enq_receive_complete()
1847 /* Writing nvdev pointer unlocks netvsc_send(), make sure chn_table is in netvsc_device_add()
1850 rcu_assign_pointer(net_device_ctx->nvdev, net_device); in netvsc_device_add()
1855 RCU_INIT_POINTER(net_device_ctx->nvdev, NULL); in netvsc_device_add()