Lines Matching refs:nvdev
39 struct netvsc_device *nv_dev = rtnl_dereference(net_device_ctx->nvdev);
99 struct netvsc_device *nvdev =
110 rdev = nvdev->extension;
112 ret = rndis_set_subchannel(rdev->ndev, nvdev, NULL);
117 for (i = 1; i < nvdev->num_chn; i++)
118 netif_napi_del(&nvdev->chan_table[i].napi);
120 nvdev->max_chn = 1;
121 nvdev->num_chn = 1;
152 struct netvsc_device *nvdev
156 kfree(nvdev->extension);
157 vfree(nvdev->recv_buf);
158 vfree(nvdev->send_buf);
159 bitmap_free(nvdev->send_section_map);
162 xdp_rxq_info_unreg(&nvdev->chan_table[i].xdp_rxq);
163 kfree(nvdev->chan_table[i].recv_buf);
164 vfree(nvdev->chan_table[i].mrc.slots);
167 kfree(nvdev);
170 static void free_netvsc_device_rcu(struct netvsc_device *nvdev)
172 call_rcu(&nvdev->rcu, free_netvsc_device);
691 = rtnl_dereference(net_device_ctx->nvdev);
706 RCU_INIT_POINTER(net_device_ctx->nvdev, NULL);
1184 = rcu_dereference_bh(ndev_ctx->nvdev);
1303 struct netvsc_device *nvdev,
1330 if (++mrc->first == nvdev->recv_completion_cnt)
1335 if (unlikely(nvdev->destroy))
1336 wake_up(&nvdev->wait_drain);
1342 static void recv_comp_slot_avail(const struct netvsc_device *nvdev,
1346 u32 count = nvdev->recv_completion_cnt;
1358 struct netvsc_device *nvdev, u16 q_idx,
1361 struct netvsc_channel *nvchan = &nvdev->chan_table[q_idx];
1366 recv_comp_slot_avail(nvdev, mrc, &filled, &avail);
1369 send_recv_completions(ndev, nvdev, nvchan);
1370 recv_comp_slot_avail(nvdev, mrc, &filled, &avail);
1383 if (++mrc->next == nvdev->recv_completion_cnt)
1794 /* Writing nvdev pointer unlocks netvsc_send(), make sure chn_table is
1797 rcu_assign_pointer(net_device_ctx->nvdev, net_device);
1802 RCU_INIT_POINTER(net_device_ctx->nvdev, NULL);