Currently, master devices (bonding, bridge, team) manually call netdev_compute_master_upper_features() scattered throughout their port add/remove operations. This approach requires each driver to remember to update features at the right times and leads to code duplication.
The series adds a new ndo_update_offloads callback that is automatically invoked during feature updates when upper/lower device relationships change. This centralizes the feature computation flow and removes the burden from individual drivers. --- Changes in v3: - ndo_set_features may be skipped when no feature change, fallback to use ndo_update_offloads for offload computation (Simon Horman) - Link to v2: https://lore.kernel.org/r/[email protected] Changes in v2: - Fix macsec Security Entity uninitialized issue (Sabrina Dubroca) - Tested with macsec-offload.sh, rtnetlink.sh, link_netns.py, all pssed - Link to v1: https://lore.kernel.org/r/[email protected] --- Hangbin Liu (5): net: add ndo_update_offloads for offload computation net: use ndo_update_offloads to set offload features for bonding/bridge/team macsec: move netdev_upper_dev_link() after macsec_changelink_common() failover: use ndo_update_offloads for failover offload compute net: no need to disable LRO specifically drivers/net/bonding/bond_main.c | 13 ++++---- drivers/net/macsec.c | 23 +++++++------- drivers/net/net_failover.c | 66 +++++------------------------------------ drivers/net/team/team_core.c | 14 ++++----- include/linux/netdevice.h | 7 +++++ include/net/net_failover.h | 7 ----- net/8021q/vlan.c | 2 -- net/bridge/br_device.c | 6 ++++ net/bridge/br_if.c | 6 ---- net/core/dev.c | 11 +++++-- net/hsr/hsr_slave.c | 1 - 11 files changed, 55 insertions(+), 101 deletions(-) --- base-commit: 5446b8691eb8278f10deca92048fad84ffd1e4d5 change-id: 20260310-offload_compute-4c0bafa2e022 Best regards, -- Hangbin Liu <[email protected]>

