• Jens Axboe's avatar
    io_uring: get rid of remap_pfn_range() for mapping rings/sqes · 3ab1db3c
    Jens Axboe authored
    Rather than use remap_pfn_range() for this and manually free later,
    switch to using vm_insert_pages() and have it Just Work.
    
    If possible, allocate a single compound page that covers the range that
    is needed. If that works, then we can just use page_address() on that
    page. If we fail to get a compound page, allocate single pages and use
    vmap() to map them into the kernel virtual address space.
    
    This just covers the rings/sqes, the other remaining user of the mmap
    remap_pfn_range() user will be converted separately. Once that is done,
    we can kill the old alloc/free code.
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    3ab1db3c
io_uring.c 111 KB