• Jacob Keller's avatar
    i40e: fix i40e_ptp_adjtime when given a negative delta · b3ccbbce
    Jacob Keller authored
    Commit 0ac30ce4 ("i40e: fix up 32 bit timespec references",
    2017-07-26) claims to be cleaning up references to 32-bit timespecs.
    
    The actual contents of the commit make no sense, as it converts a call
    to timespec64_add into timespec64_add_ns. This would seem ok, if (a) the
    change was documented in the commit message, and (b) timespec64_add_ns
    supported negative numbers.
    
    timespec64_add_ns doesn't work with signed deltas, because the
    implementation is based around iter_div_u64_rem. This change resulted in
    a regression where i40e_ptp_adjtime would interpret small negative
    adjustments as large positive additions, resulting in incorrect
    behavior.
    
    This commit doesn't appear to fix anything, is not well explained, and
    introduces a bug, so lets just revert it.
    
    Reverts: 0ac30ce4 ("i40e: fix up 32 bit timespec references", 2017-07-26)
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    b3ccbbce
i40e_ptp.c 25.1 KB