From: Hangbin Liu <liuhangbin@gmail.com>
To: netdev@vger.kernel.org
Cc: Jay Vosburgh <jv@jvosburgh.net>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Sabrina Dubroca <sdubroca@redhat.com>,
Jiri Pirko <jiri@resnulli.us>, Simon Horman <horms@kernel.org>,
Ido Schimmel <idosch@nvidia.com>, Shuah Khan <shuah@kernel.org>,
Stanislav Fomichev <sdf@fomichev.me>,
Kuniyuki Iwashima <kuniyu@google.com>,
Ahmed Zaki <ahmed.zaki@intel.com>,
Alexander Lobakin <aleksander.lobakin@intel.com>,
bridge@lists.linux.dev, linux-kselftest@vger.kernel.org,
Hangbin Liu <liuhangbin@gmail.com>
Subject: [PATCHv2 net-next 4/5] net: bridge: use common function to compute the features
Date: Tue, 2 Sep 2025 07:26:01 +0000 [thread overview]
Message-ID: <20250902072602.361122-5-liuhangbin@gmail.com> (raw)
In-Reply-To: <20250902072602.361122-1-liuhangbin@gmail.com>
Previously, bridge ignored all features propagation and DST retention,
only handling explicitly the GSO limits.
By switching to the new helper netdev_compute_features_from_lowers(),
the bridge now expose additional features, depending on the lowers
capabilities.
Since br_set_gso_limits() is already covered by the helper, it can be
removed safely.
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
---
net/bridge/br_if.c | 22 +++-------------------
1 file changed, 3 insertions(+), 19 deletions(-)
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index 98c5b9c3145f..8fe44e8c008c 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -525,20 +525,6 @@ void br_mtu_auto_adjust(struct net_bridge *br)
br_opt_toggle(br, BROPT_MTU_SET_BY_USER, false);
}
-static void br_set_gso_limits(struct net_bridge *br)
-{
- unsigned int tso_max_size = TSO_MAX_SIZE;
- const struct net_bridge_port *p;
- u16 tso_max_segs = TSO_MAX_SEGS;
-
- list_for_each_entry(p, &br->port_list, list) {
- tso_max_size = min(tso_max_size, p->dev->tso_max_size);
- tso_max_segs = min(tso_max_segs, p->dev->tso_max_segs);
- }
- netif_set_tso_max_size(br->dev, tso_max_size);
- netif_set_tso_max_segs(br->dev, tso_max_segs);
-}
-
/*
* Recomputes features using slave's features
*/
@@ -652,8 +638,6 @@ int br_add_if(struct net_bridge *br, struct net_device *dev,
netdev_err(dev, "failed to sync bridge static fdb addresses to this port\n");
}
- netdev_update_features(br->dev);
-
br_hr = br->dev->needed_headroom;
dev_hr = netdev_get_fwd_headroom(dev);
if (br_hr < dev_hr)
@@ -694,7 +678,8 @@ int br_add_if(struct net_bridge *br, struct net_device *dev,
call_netdevice_notifiers(NETDEV_CHANGEADDR, br->dev);
br_mtu_auto_adjust(br);
- br_set_gso_limits(br);
+
+ netdev_compute_features_from_lowers(br->dev);
kobject_uevent(&p->kobj, KOBJ_ADD);
@@ -740,7 +725,6 @@ int br_del_if(struct net_bridge *br, struct net_device *dev)
del_nbp(p);
br_mtu_auto_adjust(br);
- br_set_gso_limits(br);
spin_lock_bh(&br->lock);
changed_addr = br_stp_recalculate_bridge_id(br);
@@ -749,7 +733,7 @@ int br_del_if(struct net_bridge *br, struct net_device *dev)
if (changed_addr)
call_netdevice_notifiers(NETDEV_CHANGEADDR, br->dev);
- netdev_update_features(br->dev);
+ netdev_compute_features_from_lowers(br->dev);
return 0;
}
--
2.50.1
next prev parent reply other threads:[~2025-09-02 7:26 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-02 7:25 [PATCHv2 net-next 0/5] net: common feature compute for upper interface Hangbin Liu
2025-09-02 7:25 ` [PATCHv2 net-next 1/5] net: add a common function to compute features from lowers devices Hangbin Liu
2025-09-06 17:42 ` Sabrina Dubroca
2025-09-08 3:20 ` Hangbin Liu
2025-09-07 0:22 ` Jakub Kicinski
2025-09-02 7:25 ` [PATCHv2 net-next 2/5] bonding: use common function to compute the features Hangbin Liu
2025-09-02 7:26 ` [PATCHv2 net-next 3/5] team: " Hangbin Liu
2025-09-02 7:26 ` Hangbin Liu [this message]
2025-09-02 7:26 ` [PATCHv2 net-next 5/5] selftests/net: add offload checking test for virtual interface Hangbin Liu
2025-09-06 21:30 ` Sabrina Dubroca
2025-09-08 4:15 ` Hangbin Liu
2025-09-08 9:36 ` Sabrina Dubroca
2025-09-08 10:14 ` Hangbin Liu
2025-09-08 21:48 ` Sabrina Dubroca
2025-09-09 2:54 ` Hangbin Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250902072602.361122-5-liuhangbin@gmail.com \
--to=liuhangbin@gmail.com \
--cc=ahmed.zaki@intel.com \
--cc=aleksander.lobakin@intel.com \
--cc=andrew+netdev@lunn.ch \
--cc=bridge@lists.linux.dev \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=idosch@nvidia.com \
--cc=jiri@resnulli.us \
--cc=jv@jvosburgh.net \
--cc=kuba@kernel.org \
--cc=kuniyu@google.com \
--cc=linux-kselftest@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sdf@fomichev.me \
--cc=sdubroca@redhat.com \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.