Page MenuHomeFreeBSD

D7553.id19438.diff
No OneTemporary

D7553.id19438.diff

Index: sys/dev/hyperv/netvsc/hv_net_vsc.h
===================================================================
--- sys/dev/hyperv/netvsc/hv_net_vsc.h
+++ sys/dev/hyperv/netvsc/hv_net_vsc.h
@@ -237,8 +237,6 @@
void *extension;
uint8_t destroy;
- /* Negotiated NVSP version */
- uint32_t nvsp_version;
uint32_t num_channel;
@@ -400,6 +398,7 @@
struct sysctl_oid *hn_tx_sysctl_tree;
struct sysctl_oid *hn_rx_sysctl_tree;
struct vmbus_xact_ctx *hn_xact;
+ uint32_t hn_nvs_ver;
} hn_softc_t;
/*
Index: sys/dev/hyperv/netvsc/hv_net_vsc.c
===================================================================
--- sys/dev/hyperv/netvsc/hv_net_vsc.c
+++ sys/dev/hyperv/netvsc/hv_net_vsc.c
@@ -593,10 +593,11 @@
for (i = protocol_number - 1; i >= 0; i--) {
if (hv_nv_negotiate_nvsp_protocol(sc, net_dev,
protocol_list[i]) == 0) {
- net_dev->nvsp_version = protocol_list[i];
- if (bootverbose)
- device_printf(dev, "Netvsc: got version 0x%x\n",
- net_dev->nvsp_version);
+ sc->hn_nvs_ver = protocol_list[i];
+ if (bootverbose) {
+ device_printf(dev, "NVS version 0x%x\n",
+ sc->hn_nvs_ver);
+ }
break;
}
}
@@ -612,7 +613,7 @@
* Set the MTU if supported by this NVSP protocol version
* This needs to be right after the NVSP init message per Haiyang
*/
- if (net_dev->nvsp_version >= NVSP_PROTOCOL_VERSION_2)
+ if (sc->hn_nvs_ver >= NVSP_PROTOCOL_VERSION_2)
ret = hv_nv_send_ndis_config(sc, ifp->if_mtu);
/*
@@ -622,7 +623,7 @@
memset(&ndis, 0, sizeof(ndis));
ndis.nvs_type = HN_NVS_TYPE_NDIS_INIT;
ndis.nvs_ndis_major = NDIS_VERSION_MAJOR_6;
- if (net_dev->nvsp_version <= NVSP_PROTOCOL_VERSION_4)
+ if (sc->hn_nvs_ver <= NVSP_PROTOCOL_VERSION_4)
ndis.nvs_ndis_minor = NDIS_VERSION_MINOR_1;
else
ndis.nvs_ndis_minor = NDIS_VERSION_MINOR_30;
@@ -636,7 +637,7 @@
}
/* Post the big receive buffer to NetVSP */
- if (net_dev->nvsp_version <= NVSP_PROTOCOL_VERSION_2)
+ if (sc->hn_nvs_ver <= NVSP_PROTOCOL_VERSION_2)
net_dev->rx_buf_size = NETVSC_RECEIVE_BUFFER_SIZE_LEGACY;
else
net_dev->rx_buf_size = NETVSC_RECEIVE_BUFFER_SIZE;
Index: sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
===================================================================
--- sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
+++ sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
@@ -611,6 +611,10 @@
hn_tx_chimney_size < sc->hn_tx_chimney_max)
hn_set_tx_chimney_size(sc, hn_tx_chimney_size);
+ SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev),
+ SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO,
+ "nvs_version", CTLFLAG_RD, &sc->hn_nvs_ver, 0, "NVS version");
+
return (0);
failed:
hn_destroy_tx_data(sc);
Index: sys/dev/hyperv/netvsc/hv_rndis_filter.c
===================================================================
--- sys/dev/hyperv/netvsc/hv_rndis_filter.c
+++ sys/dev/hyperv/netvsc/hv_rndis_filter.c
@@ -349,11 +349,10 @@
rndis_device *rndis_dev;
device_t dev = sc->hn_dev;
netvsc_dev *net_dev = sc->net_dev;
- uint32_t vsp_version = net_dev->nvsp_version;
uint32_t extlen = sizeof(rndis_offload_params);
int ret;
- if (vsp_version <= NVSP_PROTOCOL_VERSION_4) {
+ if (sc->hn_nvs_ver <= NVSP_PROTOCOL_VERSION_4) {
extlen = VERSION_4_OFFLOAD_SIZE;
/* On NVSP_PROTOCOL_VERSION_4 and below, we do not support
* UDP checksum offload.
@@ -1116,7 +1115,7 @@
dev_info->link_state = rndis_dev->link_status;
net_dev->num_channel = 1;
- if (net_dev->nvsp_version < NVSP_PROTOCOL_VERSION_5 || nchan == 1)
+ if (sc->hn_nvs_ver < NVSP_PROTOCOL_VERSION_5 || nchan == 1)
return (0);
memset(&rsscaps, 0, rsscaps_size);

File Metadata

Mime Type
text/plain
Expires
Thu, Apr 30, 8:00 AM (5 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32473858
Default Alt Text
D7553.id19438.diff (3 KB)

Event Timeline