netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] e1000e: Populate entire system_counterval_t in get_time_fn() callback
@ 2025-07-09 14:34 Markus Blöchl
  2025-07-10  2:10 ` John Stultz
  2025-07-19 20:00 ` Thomas Gleixner
  0 siblings, 2 replies; 3+ messages in thread
From: Markus Blöchl @ 2025-07-09 14:34 UTC (permalink / raw)
  To: Tony Nguyen, Przemek Kitszel, Richard Cochran, Thomas Gleixner
  Cc: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, markus.bloechl, John Stultz, intel-wired-lan, netdev,
	linux-kernel

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>


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] e1000e: Populate entire system_counterval_t in get_time_fn() callback
  2025-07-09 14:34 [PATCH] e1000e: Populate entire system_counterval_t in get_time_fn() callback Markus Blöchl
@ 2025-07-10  2:10 ` John Stultz
  2025-07-19 20:00 ` Thomas Gleixner
  1 sibling, 0 replies; 3+ messages in thread
From: John Stultz @ 2025-07-10  2:10 UTC (permalink / raw)
  To: Markus Blöchl
  Cc: Tony Nguyen, Przemek Kitszel, Richard Cochran, Thomas Gleixner,
	Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, markus.bloechl, intel-wired-lan, netdev,
	linux-kernel

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] e1000e: Populate entire system_counterval_t in get_time_fn() callback
  2025-07-09 14:34 [PATCH] e1000e: Populate entire system_counterval_t in get_time_fn() callback Markus Blöchl
  2025-07-10  2:10 ` John Stultz
@ 2025-07-19 20:00 ` Thomas Gleixner
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Gleixner @ 2025-07-19 20:00 UTC (permalink / raw)
  To: Markus Blöchl, Tony Nguyen, Przemek Kitszel, Richard Cochran
  Cc: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, markus.bloechl, John Stultz, intel-wired-lan, netdev,
	linux-kernel

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,

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-07-19 20:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-09 14:34 [PATCH] e1000e: Populate entire system_counterval_t in get_time_fn() callback Markus Blöchl
2025-07-10  2:10 ` John Stultz
2025-07-19 20:00 ` Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).