• Douglas Anderson's avatar
    timers: Fix documentation for schedule_timeout() and similar · 4b7e9cf9
    Douglas Anderson authored
    The documentation for schedule_timeout(), schedule_hrtimeout(), and
    schedule_hrtimeout_range() all claim that the routines couldn't possibly
    return early if the task state was TASK_UNINTERRUPTIBLE. This is simply
    not true since wake_up_process() will cause those routines to exit early.
    
    We cannot make schedule_[hr]timeout() loop until the timeout expires if the
    task state is uninterruptible because we have users which rely on the
    existing and designed behaviour.
    
    Make the documentation match the (correct) implementation.
    
    schedule_hrtimeout() returns -EINTR even when a uninterruptible task was
    woken up. This might look strange, but making the return code depend on the
    state is too much of an effort as it would affect all the call sites. There
    is no value in doing so, but we spell it out clearly in the documentation.
    Suggested-by: default avatarDaniel Kurtz <djkurtz@chromium.org>
    Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
    Cc: huangtao@rock-chips.com
    Cc: heiko@sntech.de
    Cc: broonie@kernel.org
    Cc: briannorris@chromium.org
    Cc: Andreas Mohr <andi@lisas.de>
    Cc: linux-rockchip@lists.infradead.org
    Cc: tony.xie@rock-chips.com
    Cc: John Stultz <john.stultz@linaro.org>
    Cc: linux@roeck-us.net
    Cc: tskd08@gmail.com
    Link: http://lkml.kernel.org/r/1477065531-30342-2-git-send-email-dianders@chromium.orgSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    4b7e9cf9
timer.c 54.4 KB