• Heiko Carstens's avatar
    s390/vdso: fix tod_steering_delta type · b24bacd6
    Heiko Carstens authored
    The s390 specific vdso function __arch_get_hw_counter() is supposed to
    consider tod clock steering.
    
    If a tod clock steering event happens and the tod clock is set to a
    new value __arch_get_hw_counter() will not return the real tod clock
    value but slowly drift it from the old delta until the returned value
    finally matches the real tod clock value again.
    
    Unfortunately the type of tod_steering_delta unsigned while it is
    supposed to be signed. It depends on if tod_steering_delta is negative
    or positive in which direction the vdso code drifts the clock value.
    
    Worst case is now that instead of drifting the clock slowly it will
    jump into the opposite direction by a factor of two.
    
    Fix this by simply making tod_steering_delta signed.
    
    Fixes: 4bff8cb5 ("s390: convert to GENERIC_VDSO")
    Cc: <stable@vger.kernel.org> # 5.10
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    b24bacd6
data.h 271 Bytes