phylink_ethtool_ksettings_get() fills only what the current link mode provides. With no PHY attached it writes port and supported; on a fixed or in-band link it also writes speed and duplex, but only if base.rate_matching already reads RATE_MATCH_NONE, a field it never writes itself and so takes from the caller. The ethtool core zeroes the structure on every path into the op, so its callers never notice; the taprio path passes a stack variable and reads a speed nobody wrote. Fixes: 89934dbf169e ("net: macb: Add TAPRIO traffic scheduling support") Assisted-by: LLM Signed-off-by: Aleksei Sviridkin --- drivers/net/ethernet/cadence/macb_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index 76ee4f506033..a43855db1e45 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -4297,7 +4297,7 @@ static int macb_taprio_setup_replace(struct net_device *netdev, struct macb_queue_enst_config *enst_queue; struct tc_taprio_sched_entry *entry; struct macb *bp = netdev_priv(netdev); - struct ethtool_link_ksettings kset; + struct ethtool_link_ksettings kset = {}; struct macb_queue *queue; u32 queue_mask; u8 queue_id; -- 2.53.0