From b3c36006ba64644da81d9fc0e4e08360aef3b4ce Mon Sep 17 00:00:00 2001 From: Jeevaka Prabu Badrappan Date: Fri, 27 Oct 2023 19:40:06 +0530 Subject: [PATCH] Fix build error with kernel 6.1 due to prototype change Tracked-On: OAM-112944 Signed-off-by: Jeevaka Prabu Badrappan --- .../vboxguest/r0drv/linux/memobj-r0drv-linux.c | 8 ++++++++ VBoxGuestAdditions/vboxguest-6.1.36/vboxsf/regops.c | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/VBoxGuestAdditions/vboxguest-6.1.36/vboxguest/r0drv/linux/memobj-r0drv-linux.c b/VBoxGuestAdditions/vboxguest-6.1.36/vboxguest/r0drv/linux/memobj-r0drv-linux.c index c2074a3..01beebf 100644 --- a/VBoxGuestAdditions/vboxguest-6.1.36/vboxguest/r0drv/linux/memobj-r0drv-linux.c +++ b/VBoxGuestAdditions/vboxguest-6.1.36/vboxguest/r0drv/linux/memobj-r0drv-linux.c @@ -1301,7 +1301,11 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser(PPRTR0MEMOBJINTERNAL ppMem, RTR3PTR R3P while (rc-- > 0) { flush_dcache_page(pMemLnx->apPages[rc]); +#if RTLNX_VER_MIN(6,1,0) + vm_flags_set(papVMAs[rc], VM_DONTCOPY | VM_LOCKED); +#else papVMAs[rc]->vm_flags |= VM_DONTCOPY | VM_LOCKED; +#endif } LNX_MM_UP_READ(pTask->mm); @@ -1771,7 +1775,11 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ p /* Thes flags help making 100% sure some bad stuff wont happen (swap, core, ++). * See remap_pfn_range() in mm/memory.c */ #if RTLNX_VER_MIN(3,7,0) +#if RTLNX_VER_MIN(6,1,0) + vm_flags_set(vma, VM_DONTEXPAND | VM_DONTDUMP); +#else vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; +#endif #else vma->vm_flags |= VM_RESERVED; #endif diff --git a/VBoxGuestAdditions/vboxguest-6.1.36/vboxsf/regops.c b/VBoxGuestAdditions/vboxguest-6.1.36/vboxsf/regops.c index 93fdb0b..a6e613b 100644 --- a/VBoxGuestAdditions/vboxguest-6.1.36/vboxsf/regops.c +++ b/VBoxGuestAdditions/vboxguest-6.1.36/vboxsf/regops.c @@ -2185,7 +2185,12 @@ static int vbsf_iter_lock_pages(struct iov_iter *iter, bool fWrite, struct vbsf_ while (!iov_iter_single_seg_count(iter)) /* Old code didn't skip empty segments which caused EFAULTs. */ iov_iter_advance(iter, 0); # endif + +#if RTLNX_VER_MIN(6,0,0) + cbSegRet = iov_iter_get_pages2(iter, papPages, iov_iter_count(iter), cMaxPages, &offPage0); +#else cbSegRet = iov_iter_get_pages(iter, papPages, iov_iter_count(iter), cMaxPages, &offPage0); +#endif if (cbSegRet > 0) { iov_iter_advance(iter, cbSegRet); cbChunk = (size_t)cbSegRet; @@ -2211,7 +2216,11 @@ static int vbsf_iter_lock_pages(struct iov_iter *iter, bool fWrite, struct vbsf_ iov_iter_advance(iter, 0); cbSeg = iov_iter_single_seg_count(iter); } +#if RTLNX_VER_MIN(6,0,0) + cbSegRet = iov_iter_get_pages2(iter, &papPages[cPages], iov_iter_count(iter), 1, &offPgProbe); +#else cbSegRet = iov_iter_get_pages(iter, &papPages[cPages], iov_iter_count(iter), 1, &offPgProbe); +#endif if (cbSegRet > 0) { iov_iter_advance(iter, cbSegRet); /** @todo maybe not do this if we stash the page? */ Assert(offPgProbe + cbSegRet <= PAGE_SIZE); @@ -2229,7 +2238,11 @@ static int vbsf_iter_lock_pages(struct iov_iter *iter, bool fWrite, struct vbsf_ */ cbSeg -= cbSegRet; if (cbSeg > 0) { +#if RTLNX_VER_MIN(6,0,0) + cbSegRet = iov_iter_get_pages2(iter, &papPages[cPages], iov_iter_count(iter), cMaxPages, &offPgProbe); +#else cbSegRet = iov_iter_get_pages(iter, &papPages[cPages], iov_iter_count(iter), cMaxPages, &offPgProbe); +#endif if (cbSegRet > 0) { size_t const cPgRet = RT_ALIGN_Z((size_t)cbSegRet, PAGE_SIZE) >> PAGE_SHIFT; Assert(offPgProbe == 0);