mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-31 09:08:08 -07:00
app-emulation/virtualbox-modules: drop 7.2.6-r2
Signed-off-by: Viorel Munteanu <ceamac@gentoo.org>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
{
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user