• A
    io_uring: use __kernel_timespec in timeout ABI · 84336694
    Arnd Bergmann 提交于
    commit bdf200731145f07a6127cb16753e2e8fdc159cf4 upstream.
    
    All system calls use struct __kernel_timespec instead of the old struct
    timespec, but this one was just added with the old-style ABI. Change it
    now to enforce the use of __kernel_timespec, avoiding ABI confusion and
    the need for compat handlers on 32-bit architectures.
    
    Any user space caller will have to use __kernel_timespec now, but this
    is unambiguous and works for any C library regardless of the time_t
    definition. A nicer way to specify the timeout would have been a less
    ambiguous 64-bit nanosecond value, but I suppose it's too late now to
    change that as this would impact both 32-bit and 64-bit users.
    
    Fixes: 5262f567987d ("io_uring: IORING_OP_TIMEOUT support")
    Signed-off-by: NArnd Bergmann <arnd@arndb.de>
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    Signed-off-by: NJoseph Qi <joseph.qi@linux.alibaba.com>
    Reviewed-by: NXiaoguang Wang <xiaoguang.wang@linux.alibaba.com>
    84336694
io_uring.c 94.1 KB