]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ice: use READ_ONCE() to access cached PHC time
authorSergey Temerkhanov <sergey.temerkhanov@intel.com>
Fri, 17 Jul 2026 18:53:30 +0000 (11:53 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 23 Jul 2026 16:00:50 +0000 (09:00 -0700)
ptp.cached_phc_time is a 64-bit value updated by a periodic work item
on one CPU and read locklessly on another.  On 32-bit or non-atomic
architectures this can result in a torn read.  Use READ_ONCE() to
enforce a single atomic load.

Fixes: 77a781155a65 ("ice: enable receive hardware timestamping")
Cc: stable@vger.kernel.org
Signed-off-by: Sergey Temerkhanov <sergey.temerkhanov@intel.com>
Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Link: https://patch.msgid.link/20260717185340.3595286-9-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/intel/ice/ice_ptp.c

index ec3d89d8d4d345ecbcdeda214fdeb6568acefffa..1469038bc8959481682c8571db4b61ab2a1a2588 100644 (file)
@@ -346,7 +346,7 @@ static u64 ice_ptp_extend_40b_ts(struct ice_pf *pf, u64 in_tstamp)
                return 0;
        }
 
-       return ice_ptp_extend_32b_ts(pf->ptp.cached_phc_time,
+       return ice_ptp_extend_32b_ts(READ_ONCE(pf->ptp.cached_phc_time),
                                     (in_tstamp >> 8) & mask);
 }