• Helge Deller's avatar
    io_uring: Fix io_uring mmap() by using architecture-provided get_unmapped_area() · 32832a40
    Helge Deller authored
    The io_uring testcase is broken on IA-64 since commit d808459b
    ("io_uring: Adjust mapping wrt architecture aliasing requirements").
    
    The reason is, that this commit introduced an own architecture
    independend get_unmapped_area() search algorithm which finds on IA-64 a
    memory region which is outside of the regular memory region used for
    shared userspace mappings and which can't be used on that platform
    due to aliasing.
    
    To avoid similar problems on IA-64 and other platforms in the future,
    it's better to switch back to the architecture-provided
    get_unmapped_area() function and adjust the needed input parameters
    before the call. Beside fixing the issue, the function now becomes
    easier to understand and maintain.
    
    This patch has been successfully tested with the io_uring testcase on
    physical x86-64, ppc64le, IA-64 and PA-RISC machines. On PA-RISC the LTP
    mmmap testcases did not report any regressions.
    
    Cc: stable@vger.kernel.org # 6.4
    Signed-off-by: default avatarHelge Deller <deller@gmx.de>
    Reported-by: default avatarmatoro <matoro_mailinglist_kernel@matoro.tk>
    Fixes: d808459b ("io_uring: Adjust mapping wrt architecture aliasing requirements")
    Link: https://lore.kernel.org/r/20230721152432.196382-2-deller@gmx.deSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
    32832a40
io_uring.c 120 KB