On Wed, Mar 25, 2026 at 4:51 PM Thomas Bogendoerfer wrote: > > When driver signals carrier up via netif_carrier_on() its internal > link_up state isn't updated immediately. This leads to inconsistent > speed/duplex in /proc/net/bonding/bondX where the speed and duplex > is shown as unknown while ethtool shows correct values. Fix this by > using netif_carrier_ok() for link checking in get_ksettings function. > > Fixes: 84421b99cedc ("tg3: Update link_up flag for phylib devices") > Signed-off-by: Thomas Bogendoerfer > --- > drivers/net/ethernet/broadcom/tg3.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > Reviewed-by: Pavan Chebbi Thank you. > diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c > index 21a5dd342724..73a4b569b03e 100644 > --- a/drivers/net/ethernet/broadcom/tg3.c > +++ b/drivers/net/ethernet/broadcom/tg3.c > @@ -12299,7 +12299,7 @@ static int tg3_get_link_ksettings(struct net_device *dev, > ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising, > advertising); > > - if (netif_running(dev) && tp->link_up) { > + if (netif_running(dev) && netif_carrier_ok(dev)) { > cmd->base.speed = tp->link_config.active_speed; > cmd->base.duplex = tp->link_config.active_duplex; > ethtool_convert_legacy_u32_to_link_mode( > -- > 2.43.0 >