drivers/net/ethernet/intel/e1000e/ptp.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
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.
Assign the entire struct again.
Fixes: bd48b50be50a ("e1000e: Replace convert_art_to_tsc()")
Cc: stable@vger.kernel.org
---
Notes:
Related-To: <https://lore.kernel.org/lkml/txyrr26hxe3xpq3ebqb5ewkgvhvp7xalotaouwludjtjifnah2@7tmgczln4aoo/>
---
drivers/net/ethernet/intel/e1000e/ptp.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/ptp.c b/drivers/net/ethernet/intel/e1000e/ptp.c
index ea3c3eb2ef2020d513d49c1368679f27d17edb04..f01506504ee3a11822930115e9ed07661d81532c 100644
--- a/drivers/net/ethernet/intel/e1000e/ptp.c
+++ b/drivers/net/ethernet/intel/e1000e/ptp.c
@@ -124,8 +124,11 @@ static int e1000e_phc_get_syncdevicetime(ktime_t *device,
sys_cycles = er32(PLTSTMPH);
sys_cycles <<= 32;
sys_cycles |= er32(PLTSTMPL);
- system->cycles = sys_cycles;
- system->cs_id = CSID_X86_ART;
+ *system = (struct system_counterval_t) {
+ .cycles = sys_cycles,
+ .cs_id = CSID_X86_ART,
+ .use_nsecs = false,
+ };
return 0;
}
---
base-commit: 733923397fd95405a48f165c9b1fbc8c4b0a4681
change-id: 20250709-e1000e_crossts-7745674f682a
Best regards,
--
Markus Blöchl <markus@blochl.de>
On Wed, Jul 09 2025 at 16:34, Markus Blöchl wrote: > 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. > > Assign the entire struct again. > > Fixes: bd48b50be50a ("e1000e: Replace convert_art_to_tsc()") > Cc: stable@vger.kernel.org > --- > Notes: > > Related-To: <https://lore.kernel.org/lkml/txyrr26hxe3xpq3ebqb5ewkgvhvp7xalotaouwludjtjifnah2@7tmgczln4aoo/> > --- > drivers/net/ethernet/intel/e1000e/ptp.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/intel/e1000e/ptp.c b/drivers/net/ethernet/intel/e1000e/ptp.c > index ea3c3eb2ef2020d513d49c1368679f27d17edb04..f01506504ee3a11822930115e9ed07661d81532c 100644 > --- a/drivers/net/ethernet/intel/e1000e/ptp.c > +++ b/drivers/net/ethernet/intel/e1000e/ptp.c > @@ -124,8 +124,11 @@ static int e1000e_phc_get_syncdevicetime(ktime_t *device, > sys_cycles = er32(PLTSTMPH); > sys_cycles <<= 32; > sys_cycles |= er32(PLTSTMPL); > - system->cycles = sys_cycles; > - system->cs_id = CSID_X86_ART; > + *system = (struct system_counterval_t) { > + .cycles = sys_cycles, > + .cs_id = CSID_X86_ART, > + .use_nsecs = false, This is again the wrong place to fix this. > + }; > > return 0; > } > > --- > base-commit: 733923397fd95405a48f165c9b1fbc8c4b0a4681 > change-id: 20250709-e1000e_crossts-7745674f682a > > Best regards,
On Wed, Jul 9, 2025 at 7:34 AM Markus Blöchl <markus@blochl.de> wrote: > > 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. > > Assign the entire struct again. > > Fixes: bd48b50be50a ("e1000e: Replace convert_art_to_tsc()") > Cc: stable@vger.kernel.org Acked-by: John Stultz <jstultz@google.com> thanks -john
© 2016 - 2025 Red Hat, Inc.