> -----Original Message----- > From: Vitaly Kuznetsov [mailto:vkuznets@xxxxxxxxxx] > Sent: Wednesday, November 15, 2017 9:13 AM > To: netdev@xxxxxxxxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx; devel@xxxxxxxxxxxxxxxxxxxxxx; KY > Srinivasan <kys@xxxxxxxxxxxxx>; Haiyang Zhang > <haiyangz@xxxxxxxxxxxxx>; Stephen Hemminger > <sthemmin@xxxxxxxxxxxxx>; Mohammed Gamal <mmorsy@xxxxxxxxxx> > Subject: [PATCH net v2] 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@xxxxxxxxxx> Reviewed-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> Thank you! _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel