path: root/include/uapi/linux/seg6.h
diff options
authorVitaly Kuznetsov <vkuznets@redhat.com>2017-11-15 15:12:55 +0100
committerDavid S. Miller <davem@davemloft.net>2017-11-16 10:49:00 +0900
commitaefd80e874e98a864915df5b7d90824a4340b450 (patch)
treef296c639475bac8e37505730d155806876ecb7f7 /include/uapi/linux/seg6.h
parentqed: use kzalloc instead of kmalloc and memset (diff)
hv_netvsc: preserve hw_features on mtu/channels/ringparam changes
rndis_filter_device_add() is called both from netvsc_probe() when we initially create the device and from set channels/mtu/ringparam routines where we basically remove the device and add it back. hw_features is reset in rndis_filter_device_add() and filled with host data. However, we lose all additional flags which are set outside of the driver, e.g. register_netdevice() adds NETIF_F_SOFT_FEATURES and many others. Unfortunately, calls to rndis_{query_hwcaps(), _set_offload_params()} calls cannot be avoided on every RNDIS reset: host expects us to set required features explicitly. Moreover, in theory hardware capabilities can change and we need to reflect the change in hw_features. Reset net->hw_features bits according to host data in rndis_netdev_set_hwcaps(), clear corresponding feature bits from net->features in case some features went missing (will never happen in real life I guess but let's be consistent). Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions