]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: stmmac: intel: populate entire system_counterval_t in get_time_fn() callback
authorMarkus Blöchl <markus@blochl.de>
Sun, 13 Jul 2025 20:21:41 +0000 (22:21 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 24 Jul 2025 06:58:29 +0000 (08:58 +0200)
commit e6176ab107ec6e57a752a97ba9f7c34a23034262 upstream.

get_time_fn() callback implementations are expected to fill out the
entire system_counterval_t struct as it may be initially uninitialized.

This broke with the removal of convert_art_to_tsc() helper functions
which left use_nsecs uninitialized.

Initially assign the entire struct with default values.

Fixes: f5e1d0db3f02 ("stmmac: intel: Remove convert_art_to_tsc()")
Cc: stable@vger.kernel.org
Signed-off-by: Markus Blöchl <markus@blochl.de>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250713-stmmac_crossts-v1-1-31bfe051b5cb@blochl.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c

index c8bb9265bbb48af1491ab0a94ffff2eb15342443..6b9787cf4a042e739c6ef884a34adc2e2ea3bf4b 100644 (file)
@@ -433,6 +433,12 @@ static int intel_crosststamp(ktime_t *device,
                return -ETIMEDOUT;
        }
 
+       *system = (struct system_counterval_t) {
+               .cycles = 0,
+               .cs_id = CSID_X86_ART,
+               .use_nsecs = false,
+       };
+
        num_snapshot = (readl(ioaddr + GMAC_TIMESTAMP_STATUS) &
                        GMAC_TIMESTAMP_ATSNS_MASK) >>
                        GMAC_TIMESTAMP_ATSNS_SHIFT;
@@ -448,7 +454,7 @@ static int intel_crosststamp(ktime_t *device,
        }
 
        system->cycles *= intel_priv->crossts_adj;
-       system->cs_id = CSID_X86_ART;
+
        priv->plat->flags &= ~STMMAC_FLAG_INT_SNAPSHOT_EN;
 
        return 0;