app-emulation/virtualbox-modules: drop 7.2.6-r2

Signed-off-by: Viorel Munteanu <ceamac@gentoo.org>
This commit is contained in:
Viorel Munteanu
2026-06-04 22:45:33 +03:00
parent 0bff94fd98
commit 67c56db9fd
5 changed files with 0 additions and 390 deletions

View File

@@ -1,4 +1,3 @@
DIST vbox-host-kernel-module-src-7.1.18.tar.xz 815796 BLAKE2B 2769287ec164931d9a0b7c463911b5d9998f627c4db890a7ca2fd8218732debcd7ad56e87b15401b475f63a299f5b3e9ce98f550426e0fa6945fbd083803bfa5 SHA512 20c1d27bf6db05a5d4f5096db9870e9f98af6ddf3b7dfb9c531cfdd0e28058a8f9db51d505a16d758d4bc603193911b739cfad7241992703502e0b3e4dcce5bf
DIST vbox-host-kernel-module-src-7.2.6.tar.xz 854948 BLAKE2B bf6dbaa2ba60eee2e204e08ad5dc4c76788e7e7cae2470c5ffc6355cd91c362a850dc06bdddbec38989df1b3cfeaea03d5f71db101d86b0b93bfa2c523d83003 SHA512 b1c710a6f2d339eb1be56d02794c8ed96f79976e4be8b424924788ffe906eea3c0e01f8289a400727a95123388a228210e70ea3e2c75b72cbb409536c2e899d9
DIST vbox-host-kernel-module-src-7.2.8.tar.xz 861596 BLAKE2B d04b6bc042738cf4997ff152f1ba92620b32ef99e1b8296e2e1994e0d5b333ce132a0d75e5ee094813b4e2fa96f628b5dcc20e41a013950eefcf066455028989 SHA512 8240a37fe5d673db5b3d865f8a8cf77340b141dabfb70936961ff9364b4b9303d5f727ac90dd60c3cbeaa9e01d9e1ff6c00e80c6fcf72e6d5a72f1e9e61cc4c8
DIST vbox-kernel-module-src-7.0.26.tar.xz 721876 BLAKE2B 355ac80cc96f4ad259a0fdbb909803bbec884c1d25fc9061f45f7039a0857b4f6cc93d4739cf85a82b9544aae06bf7b689d5d530ffc2fe97a874ef57d123423f SHA512 5980721197b908d5d991b258be395a8b542b8183eac7b146b147e4dbea9ff0b0408de5733b12d02a159b689bde29966a55fa7b64c953b9abe4180dbf6e0ebcb6

View File

@@ -1,243 +0,0 @@
https://github.com/VirtualBox/virtualbox/commit/280303b3f03d7087b9c955088a3cf499414f6ec1
From 280303b3f03d7087b9c955088a3cf499414f6ec1 Mon Sep 17 00:00:00 2001
From: Vadim Galitsyn <vadim.galitsyn@oracle.com>
Date: Tue, 17 Feb 2026 15:00:09 +0000
Subject: [PATCH] Linux host: Introduce initial support for kernel 6.19
bugref:11038.
svn:sync-xref-src-repo-rev: r172809
--- a/vboxdrv/linux/SUPDrv-linux.c
+++ b/vboxdrv/linux/SUPDrv-linux.c
@@ -190,6 +190,12 @@ static bool g_fEnabledHwvirtUsingKvm;
static int (*g_pfnKvmEnableVirtualization)(void);
/** Function pointer to kvm_disable_virtualization(). */
static void (*g_pfnKvmDisableVirtualization)(void);
+# if RTLNX_VER_MIN(6,19,0)
+/** Function pointer to cr4_update_irqsoff(). */
+static void (*g_pfnCr4UpdateIrqsoff)(unsigned long set, unsigned long clear);
+/** Function pointer to cr4_read_shadow(). */
+static unsigned long (*g_pfnCr4ReadShadow)(void);
+# endif
/** Pointer to the KVM hardware specific module. */
struct module *g_pKvmHwvirtModule;
#endif
@@ -395,6 +401,28 @@ static int supdrvLinuxInitKvmSymbols(void)
void *pfnDisable = __symbol_get("kvm_disable_virtualization");
if (pfnDisable)
{
+# if RTLNX_VER_MIN(6,19,0)
+ void *pfnCr4UpdateIrqsoff = __symbol_get("cr4_update_irqsoff");
+ void *pfnRr4ReadShadow = __symbol_get("cr4_read_shadow");
+
+ if ( pfnCr4UpdateIrqsoff
+ && pfnRr4ReadShadow)
+ {
+ g_pfnCr4UpdateIrqsoff = pfnCr4UpdateIrqsoff;
+ g_pfnCr4ReadShadow = pfnRr4ReadShadow;
+
+ printk(KERN_INFO "vboxdrv: Found extra KVM hardware-virtualization symbols\n");
+ }
+ else
+ {
+ printk(KERN_WARNING "vboxdrv: Failed to find extra KVM hardware-virtualization symbols\n");
+
+ if (pfnCr4UpdateIrqsoff)
+ symbol_put_addr(pfnCr4UpdateIrqsoff);
+ if (pfnRr4ReadShadow)
+ symbol_put_addr(pfnRr4ReadShadow);
+ }
+#endif
/*
* Try to obtain a reference to kvm_intel/kvm_amd module in addition to the
* reference to the kvm module. If we fail, we will not try to use KVM for
@@ -479,6 +507,18 @@ static void supdrvLinuxTermKvmSymbols(void)
symbol_put_addr(g_pfnKvmDisableVirtualization);
g_pfnKvmDisableVirtualization = NULL;
}
+# if RTLNX_VER_MIN(6,19,0)
+ if (g_pfnCr4UpdateIrqsoff)
+ {
+ symbol_put_addr(g_pfnCr4UpdateIrqsoff);
+ g_pfnCr4UpdateIrqsoff = NULL;
+ }
+ if (g_pfnCr4ReadShadow)
+ {
+ symbol_put_addr(g_pfnCr4ReadShadow);
+ g_pfnCr4ReadShadow = NULL;
+ }
+#endif
if (g_pKvmHwvirtModule)
{
module_put(g_pKvmHwvirtModule);
@@ -1159,6 +1199,35 @@ SUPR0DECL(int) SUPDrvLinuxLdrDeregisterWrappedModule(PCSUPLDRWRAPPEDMODULE pWrap
}
EXPORT_SYMBOL(SUPDrvLinuxLdrDeregisterWrappedModule);
+/**
+ * Wrapper function for cr4_update_irqsoff() which was
+ * exported only for KVM starting from kernel 6.19.
+ */
+static void supdrvLinux_cr4_update_irqsoff(unsigned long set, unsigned long clear)
+{
+#if RTLNX_VER_MIN(6,19,0) && defined(SUPDRV_LINUX_HAS_KVM_HWVIRT_API)
+ if (g_pfnCr4UpdateIrqsoff)
+ g_pfnCr4UpdateIrqsoff(set, clear);
+#else
+ cr4_update_irqsoff(set, clear);
+#endif
+}
+
+/**
+ * Wrapper function for supdrvLinux_cr4_read_shadow() which was
+ * exported only for KVM starting from kernel 6.19.
+ */
+static unsigned long supdrvLinux_cr4_read_shadow(void)
+{
+ unsigned long cr4 = 0;
+#if RTLNX_VER_MIN(6,19,0) && defined(SUPDRV_LINUX_HAS_KVM_HWVIRT_API)
+ if (g_pfnCr4ReadShadow)
+ cr4 = g_pfnCr4ReadShadow();
+#else
+ cr4 = cr4_read_shadow();
+#endif
+ return cr4;
+}
#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
RTCCUINTREG VBOXCALL supdrvOSChangeCR4(RTCCUINTREG fOrMask, RTCCUINTREG fAndMask)
@@ -1166,10 +1235,10 @@ RTCCUINTREG VBOXCALL supdrvOSChangeCR4(RTCCUINTREG fOrMask, RTCCUINTREG fAndMask
# if RTLNX_VER_MIN(5,8,0)
unsigned long fSavedFlags;
local_irq_save(fSavedFlags);
- RTCCUINTREG const uOld = cr4_read_shadow();
- cr4_update_irqsoff(fOrMask, ~fAndMask); /* Same as this function, only it is not returning the old value. */
- AssertMsg(cr4_read_shadow() == ((uOld & fAndMask) | fOrMask),
- ("fOrMask=%#RTreg fAndMask=%#RTreg uOld=%#RTreg; new cr4=%#llx\n", fOrMask, fAndMask, uOld, cr4_read_shadow()));
+ RTCCUINTREG const uOld = supdrvLinux_cr4_read_shadow();
+ supdrvLinux_cr4_update_irqsoff(fOrMask, ~fAndMask); /* Same as this function, only it is not returning the old value. */
+ AssertMsg(supdrvLinux_cr4_read_shadow() == ((uOld & fAndMask) | fOrMask),
+ ("fOrMask=%#RTreg fAndMask=%#RTreg uOld=%#RTreg; new cr4=%#llx\n", fOrMask, fAndMask, uOld, supdrvLinux_cr4_read_shadow()));
local_irq_restore(fSavedFlags);
# else
# if RTLNX_VER_MIN(3,20,0)
--- a/vboxdrv/r0drv/linux/initterm-r0drv-linux.c
+++ b/vboxdrv/r0drv/linux/initterm-r0drv-linux.c
@@ -60,6 +60,11 @@ static DECLARE_TASK_QUEUE(g_rtR0LnxWorkQueue);
* This is a special mm structure used to manage the kernel address space. */
struct mm_struct *g_pLnxInitMm = NULL;
+#if RTLNX_VER_MIN(6,19,0)
+/** Pointer to __flush_tlb_all kernel symbol. */
+void (*g_pfnLinuxFlushTlbAll)(void);
+#endif
+
/**
* Pushes an item onto the IPRT work queue.
@@ -136,6 +141,11 @@ DECLHIDDEN(int) rtR0InitNative(void)
printk("rtR0InitNative: g_pLnxInitMm=%p\n", g_pLnxInitMm);
RTR0DbgKrnlInfoRelease(hKrnlInfo);
+# if RTLNX_VER_MIN(6,19,0)
+ g_pfnLinuxFlushTlbAll = __symbol_get("__flush_tlb_all");
+ if (!RT_VALID_PTR(g_pfnLinuxFlushTlbAll))
+ printk("rtR0InitNative: can't load __flush_tlb_all\n");
+# endif
}
else
printk("rtR0InitNative: RTR0DbgKrnlInfoOpen failed: %d\n", rc);
@@ -151,6 +161,12 @@ DECLHIDDEN(void) rtR0TermNative(void)
{
IPRT_LINUX_SAVE_EFL_AC();
+# if RTLNX_VER_MIN(6,19,0)
+ if (RT_VALID_PTR(g_pfnLinuxFlushTlbAll))
+ symbol_put_addr(g_pfnLinuxFlushTlbAll);
+ g_pfnLinuxFlushTlbAll = NULL;
+#endif
+
rtR0LnxWorkqueueFlush();
#if RTLNX_VER_MIN(2,5,41)
destroy_workqueue(g_prtR0LnxWorkQueue);
--- a/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
+++ b/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
@@ -181,7 +181,7 @@ static const struct
* Internal Functions *
*********************************************************************************************************************************/
static void rtR0MemObjLinuxFreePages(PRTR0MEMOBJLNX pMemLnx);
-
+static void rtR0MemObjLinuxFlushTlbAll(void);
/**
@@ -2245,6 +2245,15 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ p
return rc;
}
+static void rtR0MemObjLinuxFlushTlbAll(void)
+{
+#if RTLNX_VER_MIN(6,19,0)
+ if (RT_LIKELY(RT_VALID_PTR(g_pfnLinuxFlushTlbAll)))
+ g_pfnLinuxFlushTlbAll();
+#else
+ __flush_tlb_all();
+#endif
+}
DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINTERNAL pMem, size_t offSub, size_t cbSub, uint32_t fProt)
{
@@ -2265,7 +2274,7 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINTERNAL pMem, size_t offSub,
set_pte(papPtes[i], mk_pte(pMemLnx->apPages[i], fPg));
}
preempt_disable();
- __flush_tlb_all();
+ rtR0MemObjLinuxFlushTlbAll();
preempt_enable();
return VINF_SUCCESS;
}
@@ -2311,7 +2320,7 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINTERNAL pMem, size_t offSub,
flush_icache_range((uintptr_t)pMemLnx->Core.pv + offSub, cbSub);
# if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86) /* flush_tlb_kernel_range is not exported, but __flush_tlb_all is. */
preempt_disable();
- __flush_tlb_all();
+ rtR0MemObjLinuxFlushTlbAll();
preempt_enable();
# else
flush_tlb_kernel_range((uintptr_t)pMemLnx->Core.pv + offSub, cbSub);
--- a/vboxdrv/r0drv/linux/the-linux-kernel.h
+++ b/vboxdrv/r0drv/linux/the-linux-kernel.h
@@ -512,6 +512,9 @@ RTDECL(struct page *) rtR0MemObjLinuxVirtToPage(void *pv);
extern struct mm_struct *g_pLnxInitMm;
+#if RTLNX_VER_MIN(6,19,0)
+extern void (*g_pfnLinuxFlushTlbAll)(void);
+#endif
#endif /* !IPRT_INCLUDED_SRC_r0drv_linux_the_linux_kernel_h */
--- a/vboxnetflt/r0drv/linux/the-linux-kernel.h
+++ b/vboxnetflt/r0drv/linux/the-linux-kernel.h
@@ -512,6 +512,9 @@ RTDECL(struct page *) rtR0MemObjLinuxVirtToPage(void *pv);
extern struct mm_struct *g_pLnxInitMm;
+#if RTLNX_VER_MIN(6,19,0)
+extern void (*g_pfnLinuxFlushTlbAll)(void);
+#endif
#endif /* !IPRT_INCLUDED_SRC_r0drv_linux_the_linux_kernel_h */
--- a/vboxnetadp/r0drv/linux/the-linux-kernel.h
+++ b/vboxnetadp/r0drv/linux/the-linux-kernel.h
@@ -512,6 +512,9 @@ RTDECL(struct page *) rtR0MemObjLinuxVirtToPage(void *pv);
extern struct mm_struct *g_pLnxInitMm;
+#if RTLNX_VER_MIN(6,19,0)
+extern void (*g_pfnLinuxFlushTlbAll)(void);
+#endif
#endif /* !IPRT_INCLUDED_SRC_r0drv_linux_the_linux_kernel_h */

View File

@@ -1,53 +0,0 @@
https://github.com/VirtualBox/virtualbox/commit/8902311a0d88a2d14a1b8ee224008a4c7061854b
From 8902311a0d88a2d14a1b8ee224008a4c7061854b Mon Sep 17 00:00:00 2001
From: Vadim Galitsyn <vadim.galitsyn@oracle.com>
Date: Tue, 17 Feb 2026 15:20:09 +0000
Subject: [PATCH] Linux host: Introduce initial support for kernel 6.19 (build
fix), bugref:11038.
svn:sync-xref-src-repo-rev: r172810
--- a/vboxdrv/linux/SUPDrv-linux.c
+++ b/vboxdrv/linux/SUPDrv-linux.c
@@ -1199,18 +1199,19 @@ SUPR0DECL(int) SUPDrvLinuxLdrDeregisterWrappedModule(PCSUPLDRWRAPPEDMODULE pWrap
}
EXPORT_SYMBOL(SUPDrvLinuxLdrDeregisterWrappedModule);
+#if RTLNX_VER_MIN(5,8,0)
/**
* Wrapper function for cr4_update_irqsoff() which was
* exported only for KVM starting from kernel 6.19.
*/
static void supdrvLinux_cr4_update_irqsoff(unsigned long set, unsigned long clear)
{
-#if RTLNX_VER_MIN(6,19,0) && defined(SUPDRV_LINUX_HAS_KVM_HWVIRT_API)
+# if RTLNX_VER_MIN(6,19,0) && defined(SUPDRV_LINUX_HAS_KVM_HWVIRT_API)
if (g_pfnCr4UpdateIrqsoff)
g_pfnCr4UpdateIrqsoff(set, clear);
-#else
+# else
cr4_update_irqsoff(set, clear);
-#endif
+# endif
}
/**
@@ -1220,14 +1221,15 @@ static void supdrvLinux_cr4_update_irqsoff(unsigned long set, unsigned long clea
static unsigned long supdrvLinux_cr4_read_shadow(void)
{
unsigned long cr4 = 0;
-#if RTLNX_VER_MIN(6,19,0) && defined(SUPDRV_LINUX_HAS_KVM_HWVIRT_API)
+# if RTLNX_VER_MIN(6,19,0) && defined(SUPDRV_LINUX_HAS_KVM_HWVIRT_API)
if (g_pfnCr4ReadShadow)
cr4 = g_pfnCr4ReadShadow();
-#else
+# else
cr4 = cr4_read_shadow();
-#endif
+# endif
return cr4;
}
+#endif /* 5.8.0 */
#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86)
RTCCUINTREG VBOXCALL supdrvOSChangeCR4(RTCCUINTREG fOrMask, RTCCUINTREG fAndMask)

View File

@@ -1,40 +0,0 @@
https://github.com/VirtualBox/virtualbox/commit/33992f0e56b8a9bb565e0beecad91e87362ab390
From 33992f0e56b8a9bb565e0beecad91e87362ab390 Mon Sep 17 00:00:00 2001
From: Vadim Galitsyn <vadim.galitsyn@oracle.com>
Date: Tue, 17 Feb 2026 15:37:37 +0000
Subject: [PATCH] Linux host: Introduce initial support for kernel 6.19 (build
fix for old kernels),bugref:11038.
svn:sync-xref-src-repo-rev: r172811
--- a/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
+++ b/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
@@ -181,7 +181,6 @@ static const struct
* Internal Functions *
*********************************************************************************************************************************/
static void rtR0MemObjLinuxFreePages(PRTR0MEMOBJLNX pMemLnx);
-static void rtR0MemObjLinuxFlushTlbAll(void);
/**
@@ -2245,15 +2244,17 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, RTR0MEMOBJ p
return rc;
}
+#if defined(IPRT_USE_ALLOC_VM_AREA_FOR_EXEC) || defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
static void rtR0MemObjLinuxFlushTlbAll(void)
{
-#if RTLNX_VER_MIN(6,19,0)
+# if RTLNX_VER_MIN(6,19,0)
if (RT_LIKELY(RT_VALID_PTR(g_pfnLinuxFlushTlbAll)))
g_pfnLinuxFlushTlbAll();
-#else
+# else
__flush_tlb_all();
-#endif
+# endif
}
+#endif
DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMOBJINTERNAL pMem, size_t offSub, size_t cbSub, uint32_t fProt)
{

View File

@@ -1,53 +0,0 @@
# Copyright 2022-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# XXX: the tarball here is just the kernel modules split out of the binary
# package that comes from VirtualBox-*.run
# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
EAPI=8
inherit linux-mod-r1
MY_P="vbox-host-kernel-module-src-${PV^^}"
DESCRIPTION="Kernel Modules for Virtualbox"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://distfiles.gentoo.org/pub/dev/ceamac@gentoo.org/${CATEGORY}/${PN}/${MY_P}.tar.xz"
S="${WORKDIR}"
LICENSE="GPL-3"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="amd64"
PATCHES=(
"${FILESDIR}"/${P}-kernel-6.19-{1..3}.patch
)
CONFIG_CHECK="~!SPINLOCK JUMP_LABEL ~PREEMPT_NOTIFIERS ~KPROBES"
KPROBES_ERROR="CONFIG_KPROBES is required for kernel 6.16+; modules fail to build with kernel 6.19+"
src_compile() {
local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
linux-mod-r1_src_compile
}
src_install() {
linux-mod-r1_src_install
insinto /usr/lib/modules-load.d/
newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
insinto /etc/modprobe.d # bug #945135
newins - virtualbox.conf <<-EOF
# modprobe.d configuration file for VBOXSF
# Starting with kernel 6.12,
# KVM initializes virtualization on module loading by default.
# This prevents VirtualBox VMs from starting.
# See also:
# https://bugs.gentoo.org/945135
# https://www.virtualbox.org/wiki/Changelog-7.1
# ------------------------------
options kvm enable_virt_at_load=0
EOF
}