]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ptp: Use ktime_get_clock_ts64() for timestamping
authorThomas Gleixner <tglx@linutronix.de>
Tue, 1 Jul 2025 13:27:00 +0000 (15:27 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 3 Jul 2025 13:36:04 +0000 (15:36 +0200)
The inlined ptp_read_system_[pre|post]ts() switch cases expand to a copious
amount of text in drivers, e.g. ~500 bytes in e1000e. Adding auxiliary
clock support to the inlines would increase it further.

Replace the inline switch case with a call to ktime_get_clock_ts64(), which
reduces the code size in drivers and allows to access auxiliary clocks once
they are enabled in the IOCTL parameter filter.

No functional change.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Acked-by: John Stultz <jstultz@google.com>
Link: https://patch.msgid.link/20250701132628.426168092@linutronix.de
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
include/linux/ptp_clock_kernel.h

index eced7e9bf69a81f9b87b5fd4ff56074647f7aef4..3d089bd4d5e9bc5c0be12496b4bc530e15b284bf 100644 (file)
@@ -477,40 +477,14 @@ static inline ktime_t ptp_convert_timestamp(const ktime_t *hwtstamp,
 
 static inline void ptp_read_system_prets(struct ptp_system_timestamp *sts)
 {
-       if (sts) {
-               switch (sts->clockid) {
-               case CLOCK_REALTIME:
-                       ktime_get_real_ts64(&sts->pre_ts);
-                       break;
-               case CLOCK_MONOTONIC:
-                       ktime_get_ts64(&sts->pre_ts);
-                       break;
-               case CLOCK_MONOTONIC_RAW:
-                       ktime_get_raw_ts64(&sts->pre_ts);
-                       break;
-               default:
-                       break;
-               }
-       }
+       if (sts)
+               ktime_get_clock_ts64(sts->clockid, &sts->pre_ts);
 }
 
 static inline void ptp_read_system_postts(struct ptp_system_timestamp *sts)
 {
-       if (sts) {
-               switch (sts->clockid) {
-               case CLOCK_REALTIME:
-                       ktime_get_real_ts64(&sts->post_ts);
-                       break;
-               case CLOCK_MONOTONIC:
-                       ktime_get_ts64(&sts->post_ts);
-                       break;
-               case CLOCK_MONOTONIC_RAW:
-                       ktime_get_raw_ts64(&sts->post_ts);
-                       break;
-               default:
-                       break;
-               }
-       }
+       if (sts)
+               ktime_get_clock_ts64(sts->clockid, &sts->post_ts);
 }
 
 #endif