Lines Matching refs:nvdev

97 	struct netvsc_device *nvdev;  in netvsc_set_rx_mode()  local
106 nvdev = rcu_dereference(ndev_ctx->nvdev); in netvsc_set_rx_mode()
107 if (nvdev) in netvsc_set_rx_mode()
108 rndis_filter_update(nvdev); in netvsc_set_rx_mode()
116 struct netvsc_device *nvdev = rtnl_dereference(ndev_ctx->nvdev); in netvsc_open() local
123 ret = rndis_filter_open(nvdev); in netvsc_open()
129 rdev = nvdev->extension; in netvsc_open()
149 static int netvsc_wait_until_empty(struct netvsc_device *nvdev) in netvsc_wait_until_empty() argument
158 for (i = 0; i < nvdev->num_chn; i++) { in netvsc_wait_until_empty()
160 = nvdev->chan_table[i].channel; in netvsc_wait_until_empty()
166 napi_synchronize(&nvdev->chan_table[i].napi); in netvsc_wait_until_empty()
192 struct netvsc_device *nvdev = rtnl_dereference(net_device_ctx->nvdev); in netvsc_close() local
198 if (!nvdev) in netvsc_close()
201 ret = rndis_filter_close(nvdev); in netvsc_close()
207 ret = netvsc_wait_until_empty(nvdev); in netvsc_close()
851 struct netvsc_device *nvdev = rtnl_dereference(net_device_ctx->nvdev); in netvsc_get_channels() local
853 if (nvdev) { in netvsc_get_channels()
854 channel->max_combined = nvdev->max_chn; in netvsc_get_channels()
855 channel->combined_count = nvdev->num_chn; in netvsc_get_channels()
860 struct netvsc_device *nvdev) in netvsc_detach() argument
867 if (cancel_work_sync(&nvdev->subchan_work)) in netvsc_detach()
868 nvdev->num_chn = 1; in netvsc_detach()
874 ret = rndis_filter_close(nvdev); in netvsc_detach()
881 ret = netvsc_wait_until_empty(nvdev); in netvsc_detach()
891 rndis_filter_device_remove(hdev, nvdev); in netvsc_detach()
901 struct netvsc_device *nvdev; in netvsc_attach() local
905 nvdev = rndis_filter_device_add(hdev, dev_info); in netvsc_attach()
906 if (IS_ERR(nvdev)) in netvsc_attach()
907 return PTR_ERR(nvdev); in netvsc_attach()
909 if (nvdev->num_chn > 1) { in netvsc_attach()
910 ret = rndis_set_subchannel(ndev, nvdev); in netvsc_attach()
914 nvdev->max_chn = 1; in netvsc_attach()
915 nvdev->num_chn = 1; in netvsc_attach()
926 ret = rndis_filter_open(nvdev); in netvsc_attach()
930 rdev = nvdev->extension; in netvsc_attach()
942 struct netvsc_device *nvdev = rtnl_dereference(net_device_ctx->nvdev); in netvsc_set_channels() local
952 if (!nvdev || nvdev->destroy) in netvsc_set_channels()
955 if (nvdev->nvsp_version < NVSP_PROTOCOL_VERSION_5) in netvsc_set_channels()
958 if (count > nvdev->max_chn) in netvsc_set_channels()
961 orig = nvdev->num_chn; in netvsc_set_channels()
965 device_info.send_sections = nvdev->send_section_cnt; in netvsc_set_channels()
966 device_info.send_section_size = nvdev->send_section_size; in netvsc_set_channels()
967 device_info.recv_sections = nvdev->recv_section_cnt; in netvsc_set_channels()
968 device_info.recv_section_size = nvdev->recv_section_size; in netvsc_set_channels()
970 ret = netvsc_detach(net, nvdev); in netvsc_set_channels()
1045 struct netvsc_device *nvdev = rtnl_dereference(ndevctx->nvdev); in netvsc_change_mtu() local
1050 if (!nvdev || nvdev->destroy) in netvsc_change_mtu()
1061 device_info.num_chn = nvdev->num_chn; in netvsc_change_mtu()
1062 device_info.send_sections = nvdev->send_section_cnt; in netvsc_change_mtu()
1063 device_info.send_section_size = nvdev->send_section_size; in netvsc_change_mtu()
1064 device_info.recv_sections = nvdev->recv_section_cnt; in netvsc_change_mtu()
1065 device_info.recv_section_size = nvdev->recv_section_size; in netvsc_change_mtu()
1067 ret = netvsc_detach(ndev, nvdev); in netvsc_change_mtu()
1126 struct netvsc_device *nvdev = rcu_dereference_rtnl(ndev_ctx->nvdev); in netvsc_get_pcpu_stats() local
1150 for (i = 0; i < nvdev->num_chn; i++) { in netvsc_get_pcpu_stats()
1151 const struct netvsc_channel *nvchan = &nvdev->chan_table[i]; in netvsc_get_pcpu_stats()
1184 struct netvsc_device *nvdev = rcu_dereference_rtnl(ndev_ctx->nvdev); in netvsc_get_stats64() local
1188 if (!nvdev) in netvsc_get_stats64()
1200 for (i = 0; i < nvdev->num_chn; i++) { in netvsc_get_stats64()
1201 const struct netvsc_channel *nvchan = &nvdev->chan_table[i]; in netvsc_get_stats64()
1234 struct netvsc_device *nvdev = rtnl_dereference(ndc->nvdev); in netvsc_set_mac_addr() local
1242 if (!nvdev) in netvsc_set_mac_addr()
1251 err = rndis_filter_set_device_mac(nvdev, addr->sa_data); in netvsc_set_mac_addr()
1314 struct netvsc_device *nvdev = rtnl_dereference(ndc->nvdev); in netvsc_get_sset_count() local
1316 if (!nvdev) in netvsc_get_sset_count()
1323 + NETVSC_QUEUE_STATS_LEN(nvdev) in netvsc_get_sset_count()
1334 struct netvsc_device *nvdev = rtnl_dereference(ndc->nvdev); in netvsc_get_ethtool_stats() local
1343 if (!nvdev) in netvsc_get_ethtool_stats()
1353 for (j = 0; j < nvdev->num_chn; j++) { in netvsc_get_ethtool_stats()
1354 qstats = &nvdev->chan_table[j].tx_stats; in netvsc_get_ethtool_stats()
1364 qstats = &nvdev->chan_table[j].rx_stats; in netvsc_get_ethtool_stats()
1391 struct netvsc_device *nvdev = rtnl_dereference(ndc->nvdev); in netvsc_get_strings() local
1395 if (!nvdev) in netvsc_get_strings()
1410 for (i = 0; i < nvdev->num_chn; i++) { in netvsc_get_strings()
1481 struct netvsc_device *nvdev = rtnl_dereference(ndc->nvdev); in netvsc_get_rxnfc() local
1483 if (!nvdev) in netvsc_get_rxnfc()
1488 info->data = nvdev->num_chn; in netvsc_get_rxnfc()
1573 ndev = rcu_dereference(ndc->nvdev); in netvsc_poll_controller()
1599 struct netvsc_device *ndev = rtnl_dereference(ndc->nvdev); in netvsc_get_rxfh()
1625 struct netvsc_device *ndev = rtnl_dereference(ndc->nvdev); in netvsc_set_rxfh()
1658 static void __netvsc_get_ringparam(struct netvsc_device *nvdev, in __netvsc_get_ringparam() argument
1663 ring->rx_pending = nvdev->recv_section_cnt; in __netvsc_get_ringparam()
1664 ring->tx_pending = nvdev->send_section_cnt; in __netvsc_get_ringparam()
1666 if (nvdev->nvsp_version <= NVSP_PROTOCOL_VERSION_2) in __netvsc_get_ringparam()
1671 ring->rx_max_pending = max_buf_size / nvdev->recv_section_size; in __netvsc_get_ringparam()
1673 / nvdev->send_section_size; in __netvsc_get_ringparam()
1680 struct netvsc_device *nvdev = rtnl_dereference(ndevctx->nvdev); in netvsc_get_ringparam() local
1682 if (!nvdev) in netvsc_get_ringparam()
1685 __netvsc_get_ringparam(nvdev, ring); in netvsc_get_ringparam()
1692 struct netvsc_device *nvdev = rtnl_dereference(ndevctx->nvdev); in netvsc_set_ringparam() local
1698 if (!nvdev || nvdev->destroy) in netvsc_set_ringparam()
1702 __netvsc_get_ringparam(nvdev, &orig); in netvsc_set_ringparam()
1714 device_info.num_chn = nvdev->num_chn; in netvsc_set_ringparam()
1716 device_info.send_section_size = nvdev->send_section_size; in netvsc_set_ringparam()
1718 device_info.recv_section_size = nvdev->recv_section_size; in netvsc_set_ringparam()
1720 ret = netvsc_detach(ndev, nvdev); in netvsc_set_ringparam()
1812 net_device = rtnl_dereference(ndev_ctx->nvdev); in netvsc_link_change()
1907 if (!rtnl_dereference(net_device_ctx->nvdev)) in get_netvsc_byref()
2071 netvsc_dev = rtnl_dereference(net_device_ctx->nvdev); in netvsc_register_vf()
2116 netvsc_dev = rtnl_dereference(net_device_ctx->nvdev); in netvsc_vf_changed()
2155 struct netvsc_device *nvdev; in netvsc_probe() local
2208 nvdev = rndis_filter_device_add(dev, &device_info); in netvsc_probe()
2209 if (IS_ERR(nvdev)) { in netvsc_probe()
2210 ret = PTR_ERR(nvdev); in netvsc_probe()
2227 if (nvdev->num_chn > 1) in netvsc_probe()
2228 schedule_work(&nvdev->subchan_work); in netvsc_probe()
2240 if (nvdev->nvsp_version >= NVSP_PROTOCOL_VERSION_2) in netvsc_probe()
2257 rndis_filter_device_remove(dev, nvdev); in netvsc_probe()
2271 struct netvsc_device *nvdev; in netvsc_remove() local
2284 nvdev = rtnl_dereference(ndev_ctx->nvdev); in netvsc_remove()
2285 if (nvdev) in netvsc_remove()
2286 cancel_work_sync(&nvdev->subchan_work); in netvsc_remove()
2296 if (nvdev) in netvsc_remove()
2297 rndis_filter_device_remove(dev, nvdev); in netvsc_remove()