lkml.org 
[lkml]   [2021]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 086/177] ice: Use div64_u64 instead of div_u64 in adjfine
    Date
    From: Karol Kolacinski <karol.kolacinski@intel.com>

    [ Upstream commit 0013881c1145d36bf26165bb70fdd7560a5507a3 ]

    Change the division in ice_ptp_adjfine from div_u64 to div64_u64.
    div_u64 is used when the divisor is 32 bit but in this case incval is
    64 bit and it caused incorrect calculations and incval adjustments.

    Fixes: 06c16d89d2cb ("ice: register 1588 PTP clock device object for E810 devices")
    Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com>
    Tested-by: Gurucharan G <gurucharanx.g@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/intel/ice/ice_ptp.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c
    index d1ef3d48a4b03..9df546984de25 100644
    --- a/drivers/net/ethernet/intel/ice/ice_ptp.c
    +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c
    @@ -459,7 +459,7 @@ static int ice_ptp_adjfine(struct ptp_clock_info *info, long scaled_ppm)
    scaled_ppm = -scaled_ppm;
    }

    - while ((u64)scaled_ppm > div_u64(U64_MAX, incval)) {
    + while ((u64)scaled_ppm > div64_u64(U64_MAX, incval)) {
    /* handle overflow by scaling down the scaled_ppm and
    * the divisor, losing some precision
    */
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-12-20 15:58    [W:4.084 / U:0.592 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site