commit 4c08267c6acb585e0e980a882c621265af8eed89
Author: Sérgio M. Basto <sergio(a)serjux.com>
Date: Wed Jun 26 17:04:43 2024 +0100
Fixes for Centos 9.4
VirtualBox-kmod.spec | 9 ++++++--
centos9.4.patch | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 67 insertions(+), 2 deletions(-)
---
diff --git a/VirtualBox-kmod.spec b/VirtualBox-kmod.spec
index e1dbf69..2383afb 100644
--- a/VirtualBox-kmod.spec
+++ b/VirtualBox-kmod.spec
@@ -40,7 +40,7 @@
Name: VirtualBox-kmod
Version: 7.0.18
-Release: 1%{?dist}
+Release: 2%{?dist}
#Release: 1%%{?prerel:.%%{prerel}}%%{?dist}
Summary: Kernel module for VirtualBox
@@ -49,6 +49,7 @@ URL:
http://www.virtualbox.org/wiki/VirtualBox
# This filters out the XEN kernel, since we don't run on XEN
Source1: excludekernel-filter.txt
Patch1: fix_7.0.6_locking_problems.patch
+Patch2: centos9.4.patch
%global AkmodsBuildRequires %{_bindir}/kmodtool VirtualBox-kmodsrc = %{version} xz time
elfutils-libelf-devel gcc
@@ -70,7 +71,8 @@ Kernel module for VirtualBox
%setup -T -c
tar --use-compress-program xz -xf
%{_datadir}/%{name}-%{version}/%{name}-%{version}.tar.xz
pushd %{name}-%{version}
-%patch -P 1 -p1
+%patch -P1 -p1
+%patch -P2 -p1
popd
# error out if there was something wrong with kmodtool
@@ -133,6 +135,9 @@ DIRS=$(ls %{name}-%{version} |wc -l)
[ $MODS = $DIRS ] || [ $MODS = 0 ]
%changelog
+* Wed Jun 26 2024 Sérgio Basto <sergio(a)serjux.com> - 7.0.18-2
+- Fixes for Centos 9.4
+
* Sat May 04 2024 Sérgio Basto <sergio(a)serjux.com> - 7.0.18-1
- Update to 7.0.18
diff --git a/centos9.4.patch b/centos9.4.patch
new file mode 100644
index 0000000..af2ca64
--- /dev/null
+++ b/centos9.4.patch
@@ -0,0 +1,60 @@
+diff -rup VirtualBox-kmod-7.0.18.orig/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
VirtualBox-kmod-7.0.18/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
+--- VirtualBox-kmod-7.0.18.orig/vboxdrv/r0drv/linux/memobj-r0drv-linux.c 2024-05-02
09:15:19.000000000 +0100
++++ VirtualBox-kmod-7.0.18/vboxdrv/r0drv/linux/memobj-r0drv-linux.c 2024-06-26
15:06:46.623757799 +0100
+@@ -1441,7 +1441,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
+ {
+ flush_dcache_page(pMemLnx->apPages[rc]);
+ # if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
+-# if RTLNX_VER_MIN(6,3,0)
++# if RTLNX_VER_MIN(6,3,0) || RTLNX_RHEL_MIN(9,4)
+ vm_flags_set(papVMAs[rc], VM_DONTCOPY | VM_LOCKED);
+ # else
+ papVMAs[rc]->vm_flags |= VM_DONTCOPY | VM_LOCKED;
+@@ -1451,7 +1451,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
+
+ LNX_MM_UP_READ(pTask->mm);
+
+-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
++# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0) && RTLNX_RHEL_MAX(9,3)
+ RTMemFree(papVMAs);
+ # endif
+
+@@ -1923,7 +1923,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(
+ /* 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(6,3,0)
++#if RTLNX_VER_MIN(6,3,0) || RTLNX_RHEL_MIN(9,4)
+ vm_flags_set(vma, VM_DONTEXPAND | VM_DONTDUMP);
+ #elif RTLNX_VER_MIN(3,7,0)
+ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
+diff -rup VirtualBox-kmod-7.0.18.orig/vboxguest/r0drv/linux/memobj-r0drv-linux.c
VirtualBox-kmod-7.0.18/vboxguest/r0drv/linux/memobj-r0drv-linux.c
+--- VirtualBox-kmod-7.0.18.orig/vboxguest/r0drv/linux/memobj-r0drv-linux.c 2024-05-02
09:15:19.000000000 +0100
++++ VirtualBox-kmod-7.0.18/vboxguest/r0drv/linux/memobj-r0drv-linux.c 2024-06-26
15:06:46.623757799 +0100
+@@ -1441,7 +1441,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
+ {
+ flush_dcache_page(pMemLnx->apPages[rc]);
+ # if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
+-# if RTLNX_VER_MIN(6,3,0)
++# if RTLNX_VER_MIN(6,3,0) || RTLNX_RHEL_MIN(9,4)
+ vm_flags_set(papVMAs[rc], VM_DONTCOPY | VM_LOCKED);
+ # else
+ papVMAs[rc]->vm_flags |= VM_DONTCOPY | VM_LOCKED;
+@@ -1451,7 +1451,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
+
+ LNX_MM_UP_READ(pTask->mm);
+
+-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
++# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0) && RTLNX_RHEL_MAX(9,3)
+ RTMemFree(papVMAs);
+ # endif
+
+@@ -1923,7 +1923,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(
+ /* 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(6,3,0)
++#if RTLNX_VER_MIN(6,3,0) || RTLNX_RHEL_MIN(9,4)
+ vm_flags_set(vma, VM_DONTEXPAND | VM_DONTDUMP);
+ #elif RTLNX_VER_MIN(3,7,0)
+ vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;