diff --git a/app-emulation/virtualbox-modules/Manifest b/app-emulation/virtualbox-modules/Manifest index 5c45142c26e21..13d04418c7c16 100644 --- a/app-emulation/virtualbox-modules/Manifest +++ b/app-emulation/virtualbox-modules/Manifest @@ -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 diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-7.2.6-kernel-6.19-1.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-7.2.6-kernel-6.19-1.patch deleted file mode 100644 index ff31366604c84..0000000000000 --- a/app-emulation/virtualbox-modules/files/virtualbox-modules-7.2.6-kernel-6.19-1.patch +++ /dev/null @@ -1,243 +0,0 @@ -https://github.com/VirtualBox/virtualbox/commit/280303b3f03d7087b9c955088a3cf499414f6ec1 - -From 280303b3f03d7087b9c955088a3cf499414f6ec1 Mon Sep 17 00:00:00 2001 -From: Vadim Galitsyn -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 */ diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-7.2.6-kernel-6.19-2.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-7.2.6-kernel-6.19-2.patch deleted file mode 100644 index f5e727bf10245..0000000000000 --- a/app-emulation/virtualbox-modules/files/virtualbox-modules-7.2.6-kernel-6.19-2.patch +++ /dev/null @@ -1,53 +0,0 @@ -https://github.com/VirtualBox/virtualbox/commit/8902311a0d88a2d14a1b8ee224008a4c7061854b - -From 8902311a0d88a2d14a1b8ee224008a4c7061854b Mon Sep 17 00:00:00 2001 -From: Vadim Galitsyn -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) diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-7.2.6-kernel-6.19-3.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-7.2.6-kernel-6.19-3.patch deleted file mode 100644 index 7a3d2a89b0b86..0000000000000 --- a/app-emulation/virtualbox-modules/files/virtualbox-modules-7.2.6-kernel-6.19-3.patch +++ /dev/null @@ -1,40 +0,0 @@ -https://github.com/VirtualBox/virtualbox/commit/33992f0e56b8a9bb565e0beecad91e87362ab390 - -From 33992f0e56b8a9bb565e0beecad91e87362ab390 Mon Sep 17 00:00:00 2001 -From: Vadim Galitsyn -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) - { diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.2.6-r2.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.2.6-r2.ebuild deleted file mode 100644 index 67d1c0c2f063a..0000000000000 --- a/app-emulation/virtualbox-modules/virtualbox-modules-7.2.6-r2.ebuild +++ /dev/null @@ -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 -}