lkml.org 
[lkml]   [2019]   [Nov]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 77/83] alarmtimer: Use EOPNOTSUPP instead of ENOTSUPP
    3.16.78-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>

    commit f18ddc13af981ce3c7b7f26925f099e7c6929aba upstream.

    ENOTSUPP is not supposed to be returned to userspace. This was found on an
    OpenPower machine, where the RTC does not support set_alarm.

    On that system, a clock_nanosleep(CLOCK_REALTIME_ALARM, ...) results in
    "524 Unknown error 524"

    Replace it with EOPNOTSUPP which results in the expected "95 Operation not
    supported" error.

    Fixes: 1c6b39ad3f01 (alarmtimers: Return -ENOTSUPP if no RTC device is present)
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lkml.kernel.org/r/20190903171802.28314-1-cascardo@canonical.com
    [ pvorel: backport for v3.16, changes also in alarm_timer_{del,set}(), which
    were removed in f2c45807d3992fe0f173f34af9c347d907c31686 in v4.13-rc1 ]
    Signed-off-by: Petr Vorel <pvorel@suse.cz>
    Acked-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    kernel/time/alarmtimer.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    --- a/kernel/time/alarmtimer.c
    +++ b/kernel/time/alarmtimer.c
    @@ -533,7 +533,7 @@ static int alarm_timer_create(struct k_i
    struct alarm_base *base;

    if (!alarmtimer_get_rtcdev())
    - return -ENOTSUPP;
    + return -EOPNOTSUPP;

    if (!capable(CAP_WAKE_ALARM))
    return -EPERM;
    @@ -576,7 +576,7 @@ static void alarm_timer_get(struct k_iti
    static int alarm_timer_del(struct k_itimer *timr)
    {
    if (!rtcdev)
    - return -ENOTSUPP;
    + return -EOPNOTSUPP;

    if (alarm_try_to_cancel(&timr->it.alarm.alarmtimer) < 0)
    return TIMER_RETRY;
    @@ -600,7 +600,7 @@ static int alarm_timer_set(struct k_itim
    ktime_t exp;

    if (!rtcdev)
    - return -ENOTSUPP;
    + return -EOPNOTSUPP;

    if (flags & ~TIMER_ABSTIME)
    return -EINVAL;
    @@ -761,7 +761,7 @@ static int alarm_timer_nsleep(const cloc
    struct restart_block *restart;

    if (!alarmtimer_get_rtcdev())
    - return -ENOTSUPP;
    + return -EOPNOTSUPP;

    if (flags & ~TIMER_ABSTIME)
    return -EINVAL;
    \
     
     \ /
      Last update: 2019-11-20 16:42    [W:4.047 / U:0.972 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site