mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-07-21 22:53:31 +02:00
The patch was incomplete. It appears to work this time. Add a check for CONFIG_OBJTOOL_WERROR, it fails to build with this option set. Bug: https://bugs.gentoo.org/956797 Closes: https://bugs.gentoo.org/956675 Signed-off-by: Viorel Munteanu <ceamac@gentoo.org>
116 lines
4 KiB
Diff
116 lines
4 KiB
Diff
Add initial support for kernel 6.15.0.
|
|
Patch obtained by comparing sources from 7.1.8 and 7.2.0_BETA1 where upstream added support.
|
|
https://bugs.gentoo.org/956675
|
|
|
|
--- a/vboxdrv/Makefile-footer.gmk
|
|
+++ b/vboxdrv/Makefile-footer.gmk
|
|
@@ -115,6 +115,7 @@ VBOXMOD_EXT := ko
|
|
|
|
# build defs
|
|
EXTRA_CFLAGS += $(VBOXMOD_CFLAGS) $(addprefix -I,$(KERN_INCL) $(VBOXMOD_INCL)) $(VBOXMOD_0_KFLAGS) $(KDEBUG)
|
|
+ccflags-y += $(EXTRA_CFLAGS)
|
|
$(VBOXMOD_0_TARGET)-y := $(VBOXMOD_OBJS)
|
|
obj-m += $(VBOXMOD_0_TARGET).o
|
|
|
|
--- a/vboxdrv/r0drv/linux/timer-r0drv-linux.c
|
|
+++ b/vboxdrv/r0drv/linux/timer-r0drv-linux.c
|
|
@@ -422,7 +422,11 @@ static void rtTimerLnxStopSubTimer(PRTTIMERLNXSUBTIMER pSubTimer, bool fHighRes)
|
|
}
|
|
else
|
|
#endif
|
|
+# if RTLNX_VER_MIN(6,15,0)
|
|
+ timer_delete(&pSubTimer->u.Std.LnxTimer);
|
|
+#else
|
|
del_timer(&pSubTimer->u.Std.LnxTimer);
|
|
+#endif
|
|
|
|
rtTimerLnxSetState(&pSubTimer->enmState, RTTIMERLNXSTATE_STOPPED);
|
|
}
|
|
@@ -470,7 +474,11 @@ static void rtTimerLnxDestroyIt(PRTTIMER pTimer)
|
|
hrtimer_cancel(&pTimer->aSubTimers[iCpu].u.Hr.LnxTimer);
|
|
else
|
|
#endif
|
|
+# if RTLNX_VER_MIN(6,15,0)
|
|
+ timer_delete_sync(&pTimer->aSubTimers[iCpu].u.Std.LnxTimer);
|
|
+#else
|
|
del_timer_sync(&pTimer->aSubTimers[iCpu].u.Std.LnxTimer);
|
|
+#endif
|
|
}
|
|
|
|
/*
|
|
@@ -1626,8 +1634,13 @@ RTDECL(int) RTTimerCreateEx(PRTTIMER *ppTimer, uint64_t u64NanoInterval, uint32_
|
|
#ifdef RTTIMER_LINUX_WITH_HRTIMER
|
|
if (pTimer->fHighRes)
|
|
{
|
|
+#if RTLNX_VER_MIN(6,15,0)
|
|
+ hrtimer_setup(&pTimer->aSubTimers[iCpu].u.Hr.LnxTimer,
|
|
+ rtTimerLinuxHrCallback, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
|
|
+#else
|
|
hrtimer_init(&pTimer->aSubTimers[iCpu].u.Hr.LnxTimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
|
|
pTimer->aSubTimers[iCpu].u.Hr.LnxTimer.function = rtTimerLinuxHrCallback;
|
|
+#endif
|
|
}
|
|
else
|
|
#endif
|
|
--- a/vboxnetadp/Makefile-footer.gmk
|
|
+++ b/vboxnetadp/Makefile-footer.gmk
|
|
@@ -115,6 +115,7 @@ VBOXMOD_EXT := ko
|
|
|
|
# build defs
|
|
EXTRA_CFLAGS += $(VBOXMOD_CFLAGS) $(addprefix -I,$(KERN_INCL) $(VBOXMOD_INCL)) $(VBOXMOD_0_KFLAGS) $(KDEBUG)
|
|
+ccflags-y += $(EXTRA_CFLAGS)
|
|
$(VBOXMOD_0_TARGET)-y := $(VBOXMOD_OBJS)
|
|
obj-m += $(VBOXMOD_0_TARGET).o
|
|
|
|
--- a/vboxnetflt/Makefile-footer.gmk
|
|
+++ b/vboxnetflt/Makefile-footer.gmk
|
|
@@ -115,6 +115,7 @@ VBOXMOD_EXT := ko
|
|
|
|
# build defs
|
|
EXTRA_CFLAGS += $(VBOXMOD_CFLAGS) $(addprefix -I,$(KERN_INCL) $(VBOXMOD_INCL)) $(VBOXMOD_0_KFLAGS) $(KDEBUG)
|
|
+ccflags-y += $(EXTRA_CFLAGS)
|
|
$(VBOXMOD_0_TARGET)-y := $(VBOXMOD_OBJS)
|
|
obj-m += $(VBOXMOD_0_TARGET).o
|
|
|
|
--- a/vboxdrv/linux/SUPDrv-linux.c
|
|
+++ b/vboxdrv/linux/SUPDrv-linux.c
|
|
@@ -1744,10 +1744,17 @@ SUPR0DECL(bool) SUPR0FpuBegin(bool fCtxHook)
|
|
*/
|
|
Assert(fCtxHook || !RTThreadPreemptIsEnabled(NIL_RTTHREAD));
|
|
kernel_fpu_begin();
|
|
-# if 0 /* Always do it for now for better test coverage. */
|
|
+# if RTLNX_VER_MIN(6,15,0) /* fpregs_unlock may do more than just preempt_enable, so only when necessary now. */
|
|
if (fCtxHook)
|
|
-# endif
|
|
+# endif
|
|
+ {
|
|
+# if RTLNX_VER_MIN(6,15,0)
|
|
+ if (!irqs_disabled())
|
|
+ fpregs_unlock();
|
|
+# else
|
|
preempt_enable();
|
|
+# endif
|
|
+ }
|
|
return false; /** @todo Not sure if we have license to use any extended state, or
|
|
* if we're limited to the SSE & x87 FPU. If it's the former,
|
|
* we should return @a true and the caller can skip
|
|
@@ -1765,10 +1772,17 @@ SUPR0DECL(void) SUPR0FpuEnd(bool fCtxHook)
|
|
#if RTLNX_VER_MIN(4,19,0)
|
|
/* HACK ALERT! See SUPR0FpuBegin for an explanation of this. */
|
|
Assert(!RTThreadPreemptIsEnabled(NIL_RTTHREAD));
|
|
-# if 0 /* Always do it for now for better test coverage. */
|
|
+# if RTLNX_VER_MIN(6,15,0) /* fpregs_unlock may do more than just preempt_enable, so only when necessary now. */
|
|
if (fCtxHook)
|
|
-# endif
|
|
+# endif
|
|
+ {
|
|
+# if RTLNX_VER_MIN(6,15,0)
|
|
+ if (!irqs_disabled())
|
|
+ fpregs_lock();
|
|
+# else
|
|
preempt_disable();
|
|
+# endif
|
|
+ }
|
|
kernel_fpu_end();
|
|
#endif
|
|
}
|