Some high-level virtual drivers need to compute features from their lower devices, but each currently has its own implementation and may miss some feature computations. This patch set introduces a common function to compute features for such devices.
Currently, bonding, team, and bridge have been updated to use the new helper. v6: * no update, only rename UPPER_DEV_* to MASTER_UPPER_DEV_* (Jiri Pirko) v5: * rename VIRTUAL_DEV_* to UPPER_DEV_* (Jiri Pirko) * use IS_ENABLED() instead of ifdef (Simon Horman) * init max_headroom/tailroom (Simon Horman) * link: https://lore.kernel.org/netdev/[email protected] v4: * update needed_{headroom, tailroom} in the common helper (Ido Schimmel) * remove unneeded err in team (Stanislav Fomichev) * remove selftest as `ethtool -k` does not test the dev->*_features. We can add back the selftest when there is a good way to test. (Sabrina Dubroca) * link: https://lore.kernel.org/netdev/[email protected] v3: a) fix hw_enc_features assign order (Sabrina Dubroca) b) set virtual dev feature definition in netdev_features.h (Jakub Kicinski) c) remove unneeded err in team_del_slave (Stanislav Fomichev) d) remove NETIF_F_HW_ESP test as it needs to be test with GSO pkts (Sabrina Dubroca) v2: a) remove hard_header_len setting. I will set needed_headroom for bond/team in a separate patch as bridge has it's own ways. (Ido Schimmel) b) Add test file to Makefile, set RET=0 to a proper location. (Ido Schimmel) Hangbin Liu (4): net: add a common function to compute features for upper devices bonding: use common function to compute the features team: use common function to compute the features net: bridge: use common function to compute the features drivers/net/bonding/bond_main.c | 99 ++------------------------------- drivers/net/team/team_core.c | 83 ++------------------------- include/linux/netdev_features.h | 18 ++++++ include/linux/netdevice.h | 1 + net/bridge/br_if.c | 22 +------- net/core/dev.c | 88 +++++++++++++++++++++++++++++ 6 files changed, 120 insertions(+), 191 deletions(-) -- 2.50.1
