Here is an additional patch with backports from 430.14 to build with kernel 5.2. Again tested by me on amd64 but not arm or i386.
Cheers, Kevin
Author: Kevin Locke <ke...@kevinlocke.name> Description: backport changes from 430.14 for kernel 5.2 Note: addition of set_page_dirty backported due to fc1d8e7cca2d --- a/nvidia-uvm/uvm8_tools.c +++ b/nvidia-uvm/uvm8_tools.c @@ -204,18 +204,21 @@ return event_tracker != NULL && !event_tracker->is_queue; } -static void put_user_pages(struct page **pages, NvU64 page_count) +static void uvm_put_user_pages_dirty(struct page **pages, NvU64 page_count) { NvU64 i; - for (i = 0; i < page_count; i++) + + for (i = 0; i < page_count; i++) { + set_page_dirty(pages[i]); put_page(pages[i]); + } } static void unmap_user_pages(struct page **pages, void *addr, NvU64 size) { size = DIV_ROUND_UP(size, PAGE_SIZE); vunmap((NvU8 *)addr); - put_user_pages(pages, size); + uvm_put_user_pages_dirty(pages, size); uvm_kvfree(pages); } @@ -279,7 +282,7 @@ uvm_kvfree(vmas); if (ret > 0) - put_user_pages(*pages, ret); + uvm_put_user_pages_dirty(*pages, ret); else if (ret < 0) status = errno_to_nv_status(ret);