• Vineet Gupta's avatar
    ARC: change return value of userspace cmpxchg assist syscall · e6e335bf
    Vineet Gupta authored
    The original syscall only used to return errno to indicate if cmpxchg
    succeeded. It was not returning the "previous" value which typical cmpxchg
    callers are interested in to build their slowpaths or retry loops.
    Given user preemption in syscall return path etc, it is not wise to
    check this in userspace afterwards, but should be what kernel actually
    observed in the syscall.
    
    So change the syscall interface to always return the previous value and
    additionally set Z flag to indicate whether operation succeeded or not
    (just like ARM implementation when they used to have this syscall)
    The flag approach avoids having to put_user errno which is nice given
    the use case for this syscall cares mostly about the "previous" value.
    Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
    e6e335bf
process.c 6.17 KB