1
0
forked from pool/virtualbox
virtualbox/fixes_for_leap15.6.patch

111 lines
4.5 KiB
Diff
Raw Normal View History

Index: VirtualBox-7.0.14/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
+++ VirtualBox-7.0.14/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
@@ -1292,9 +1292,6 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
IPRT_LINUX_SAVE_EFL_AC();
const int cPages = cb >> PAGE_SHIFT;
struct task_struct *pTask = rtR0ProcessToLinuxTask(R0Process);
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
- struct vm_area_struct **papVMAs;
-# endif
PRTR0MEMOBJLNX pMemLnx;
int rc = VERR_NO_MEMORY;
int const fWrite = fAccess & RTMEM_PROT_WRITE ? 1 : 0;
@@ -1318,11 +1315,6 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
return VERR_NO_MEMORY;
}
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
- papVMAs = (struct vm_area_struct **)RTMemAlloc(sizeof(*papVMAs) * cPages);
- if (papVMAs)
- {
-# endif
LNX_MM_DOWN_READ(pTask->mm);
/*
@@ -1342,9 +1334,6 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
fWrite, /* force write access. */
# endif
&pMemLnx->apPages[0] /* Page array. */
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0) && !RTLNX_SUSE_MAJ_PREREQ(15, 6)
- , papVMAs /* vmas */
-# endif
);
/*
* Actually this should not happen at the moment as call this function
@@ -1367,12 +1356,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
fWrite, /* force write access. */
# endif
&pMemLnx->apPages[0] /* Page array. */
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
- , papVMAs /* vmas */
-# endif
-# if GET_USER_PAGES_API >= KERNEL_VERSION(4, 10, 0)
- , NULL /* locked */
-# endif
+ , NULL, NULL
);
#else /* GET_USER_PAGES_API < KERNEL_VERSION(4, 6, 0) */
rc = get_user_pages(pTask, /* Task for fault accounting. */
@@ -1389,9 +1373,6 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
fWrite, /* force write access. */
# endif
&pMemLnx->apPages[0] /* Page array. */
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0) && && !defined(OPENSUSE_156)
- , papVMAs /* vmas */
-# endif
);
#endif /* GET_USER_PAGES_API < KERNEL_VERSION(4, 6, 0) */
if (rc == cPages)
@@ -1415,21 +1396,10 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
while (rc-- > 0)
{
flush_dcache_page(pMemLnx->apPages[rc]);
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
-# if RTLNX_VER_MIN(6,3,0)
- vm_flags_set(papVMAs[rc], VM_DONTCOPY | VM_LOCKED);
-# else
- papVMAs[rc]->vm_flags |= VM_DONTCOPY | VM_LOCKED;
-# endif
-# endif
}
LNX_MM_UP_READ(pTask->mm);
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
- RTMemFree(papVMAs);
-# endif
-
pMemLnx->Core.u.Lock.R0Process = R0Process;
pMemLnx->cPages = cPages;
Assert(!pMemLnx->fMappedToRing0);
@@ -1457,11 +1427,6 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
rc = VERR_LOCK_FAILED;
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
- RTMemFree(papVMAs);
- }
-# endif
-
rtR0MemObjDelete(&pMemLnx->Core);
IPRT_LINUX_RESTORE_EFL_AC();
return rc;
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/sharedfolders/regops.c
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/sharedfolders/regops.c
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/sharedfolders/regops.c
@@ -270,11 +270,7 @@ static ssize_t vbsf_iov_iter_get_pages(s
size_t cPagesLocked;
down_read(&pTask->mm->mmap_sem);
-#if defined(OPENSUSE_156)
cPagesLocked = get_user_pages(pTask, pTask->mm, uPtrFrom, cPages);
-#else
- cPagesLocked = get_user_pages(pTask, pTask->mm, uPtrFrom, cPages, iter->v_write, 1 /*force*/, papPages, NULL);
-#endif
up_read(&pTask->mm->mmap_sem);
if (cPagesLocked == cPages) {
size_t cbRet = (cPages << PAGE_SHIFT) - offPg0;