Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package virtualbox for openSUSE:Factory checked in at 2022-05-30 12:42:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/virtualbox (Old) and /work/SRC/openSUSE:Factory/.virtualbox.new.2254 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virtualbox" Mon May 30 12:42:45 2022 rev:237 rq:979541 version:6.1.34 Changes: -------- --- /work/SRC/openSUSE:Factory/virtualbox/virtualbox.changes 2022-05-24 20:31:29.050925685 +0200 +++ /work/SRC/openSUSE:Factory/.virtualbox.new.2254/virtualbox.changes 2022-05-30 12:43:21.888343769 +0200 @@ -1,0 +2,6 @@ +Fri May 27 22:27:02 UTC 2022 - Larry Finger <larry.fin...@gmail.com> + +- Update fixes_for_kernel_5.18.patch to save and restore FPU status during interrupt. + The change fixes boo#1199803. + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ virtualbox.spec ++++++ --- /var/tmp/diff_new_pack.KpWLXL/_old 2022-05-30 12:43:23.384345760 +0200 +++ /var/tmp/diff_new_pack.KpWLXL/_new 2022-05-30 12:43:23.388345766 +0200 @@ -170,7 +170,6 @@ Patch143: vb-6.1.16-modal-dialog-parent.patch Patch144: fixes_for_leap15.4.patch Patch145: fixes_for_kernel_5.18.patch -#Patch998: fix_warnings.patch Patch999: virtualbox-fix-ui-background-color.patch # # Common BuildRequires for both virtualbox and virtualbox-kmp @@ -296,6 +295,7 @@ ########################################## + %package qt Summary: Qt GUI part for %{name} Group: System/Emulators/PC @@ -314,6 +314,7 @@ ######################################### + %package websrv Summary: WebService GUI part for %{name} Group: System/Emulators/PC @@ -327,6 +328,7 @@ ######################################### + %package guest-x11 Summary: VirtualBox X11 drivers for mouse and video Group: System/X11/Servers/XF86_4 @@ -342,6 +344,7 @@ ########################################### + %package guest-tools Summary: VirtualBox guest tools Group: System/Emulators/PC @@ -361,6 +364,7 @@ ########################################### + %package -n python3-%{name} Summary: Python bindings for %{name} Group: Development/Libraries/Python @@ -380,6 +384,7 @@ ########################################### + %package devel Summary: Devel files for %{name} Group: Development/Libraries/Other @@ -394,6 +399,7 @@ ########################################### + %package host-source Summary: Source files for %{name} host kernel modules Group: Development/Sources @@ -425,6 +431,7 @@ ########################################### + %package guest-desktop-icons Summary: Icons for guest desktop files Group: System/Emulators/PC @@ -437,6 +444,7 @@ ########################################### + %package vnc Summary: VNC desktop sharing Group: System/Emulators/PC @@ -513,7 +521,6 @@ %endif %patch143 -p1 %patch145 -p1 -#%patch998 -p1 # make VB UI background colors look sane again %patch999 -p1 ++++++ fixes_for_kernel_5.18.patch ++++++ --- /var/tmp/diff_new_pack.KpWLXL/_old 2022-05-30 12:43:23.492345904 +0200 +++ /var/tmp/diff_new_pack.KpWLXL/_new 2022-05-30 12:43:23.492345904 +0200 @@ -20,19 +20,41 @@ =================================================================== --- VirtualBox-6.1.34.orig/src/VBox/HostDrivers/Support/SUPDrv.cpp +++ VirtualBox-6.1.34/src/VBox/HostDrivers/Support/SUPDrv.cpp -@@ -1742,7 +1742,15 @@ static int supdrvIOCtlInnerUnrestricted( +@@ -98,7 +98,18 @@ + # endif + #endif - /* execute */ - pReq->u.Out.cFunctions = RT_ELEMENTS(g_aFunctions); -+ -+ /* In 5.18.0, memcpy became a wrapper which does fortify checks -+ * before triggering __underlying_memcpy() call. We do not pass these checks here, -+ * so bypass them for now. */ -+#if RTLNX_VER_MIN(5,18,0) -+ __underlying_memcpy(&pReq->u.Out.aFunctions[0], g_aFunctions, sizeof(g_aFunctions)); +- ++#if defined(RT_OS_LINUX) && !defined(__NO_FORTIFY) && defined(__OPTIMIZE__) && defined(CONFIG_FORTIFY_SOURCE) ++/* In Linux 5.18-rc1, memcpy became a wrapper which does fortify checks ++ * before triggering __underlying_memcpy() call. We do not pass these checks here, ++ * so bypass them for now. */ ++# if RTLNX_VER_MIN(5,18,0) ++# define SUPDRV_MEMCPY __underlying_memcpy ++# else ++# define SUPDRV_MEMCPY memcpy ++# endif +#else - memcpy(&pReq->u.Out.aFunctions[0], g_aFunctions, sizeof(g_aFunctions)); ++# define SUPDRV_MEMCPY memcpy +#endif + /* + * Logging assignments: + * Log - useful stuff, like failures. +@@ -267,6 +278,8 @@ static SUPFUNC g_aFunctions[] = + SUPEXP_STK_BACK( 2, SUPR0ChangeCR4), + SUPEXP_STK_BACK( 1, SUPR0EnableVTx), + SUPEXP_STK_BACK( 0, SUPR0SuspendVTxOnCpu), ++ SUPEXP_STK_OKAY( 1, SUPR0FpuBegin), ++ SUPEXP_STK_OKAY( 1, SUPR0FpuEnd), + SUPEXP_STK_BACK( 1, SUPR0ResumeVTxOnCpu), + SUPEXP_STK_OKAY( 1, SUPR0GetCurrentGdtRw), + SUPEXP_STK_OKAY( 0, SUPR0GetKernelFeatures), +@@ -1742,7 +1755,7 @@ static int supdrvIOCtlInnerUnrestricted( + + /* execute */ + pReq->u.Out.cFunctions = RT_ELEMENTS(g_aFunctions); +- memcpy(&pReq->u.Out.aFunctions[0], g_aFunctions, sizeof(g_aFunctions)); ++ SUPDRV_MEMCPY(&pReq->u.Out.aFunctions[0], g_aFunctions, sizeof(g_aFunctions)); pReq->Hdr.rc = VINF_SUCCESS; return 0; } @@ -84,5 +106,196 @@ TEMPLATE_VBoxR0_CFLAGS.amd64 = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables -ffreestanding TEMPLATE_VBoxR0_CXXFLAGS.amd64 = -m64 -mno-red-zone -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fasynchronous-unwind-tables TEMPLATE_VBoxR0_CXXFLAGS.freebsd = -ffreestanding - +Index: VirtualBox-6.1.34/include/VBox/sup.h +=================================================================== +--- VirtualBox-6.1.34.orig/include/VBox/sup.h ++++ VirtualBox-6.1.34/include/VBox/sup.h +@@ -2142,7 +2142,25 @@ RT_IPRT_FORMAT_ATTR(1, 2) SUPR0Printf(co + */ + SUPR0DECL(uint32_t) SUPR0GetKernelFeatures(void); + +-/** @copydoc RTLogGetDefaultInstanceEx ++/** ++ * Notification from R0 VMM prior to loading the guest-FPU register state. ++ * ++ * @returns Whether the host-FPU register state has been saved by the host kernel. ++ * @param fCtxHook Whether thread-context hooks are enabled. ++ * ++ * @remarks Called with preemption disabled. ++ */ ++SUPR0DECL(bool) SUPR0FpuBegin(bool fCtxHook); ++ ++/** ++ * Notification from R0 VMM prior to saving the guest-FPU register state (and ++ * potentially restoring the host-FPU register state) in ring-0. ++ * ++ * @param fCtxHook Whether thread-context hooks are enabled. ++ * ++ * @remarks Called with preemption disabled. ++ */ ++SUPR0DECL(void) SUPR0FpuEnd(bool fCtxHook); /** @copydoc RTLogGetDefaultInstanceEx + * @remarks To allow overriding RTLogGetDefaultInstanceEx locally. */ + SUPR0DECL(struct RTLOGGER *) SUPR0GetDefaultLogInstanceEx(uint32_t fFlagsAndGroup); + /** @copydoc RTLogRelGetDefaultInstanceEx +Index: VirtualBox-6.1.34/src/VBox/VMM/VMMR0/CPUMR0.cpp +=================================================================== +--- VirtualBox-6.1.34.orig/src/VBox/VMM/VMMR0/CPUMR0.cpp ++++ VirtualBox-6.1.34/src/VBox/VMM/VMMR0/CPUMR0.cpp +@@ -440,6 +440,8 @@ VMMR0_INT_DECL(int) CPUMR0LoadGuestFPU(P + Assert(!(pVCpu->cpum.s.fUseFlags & CPUM_USED_FPU_GUEST)); + Assert(!(pVCpu->cpum.s.fUseFlags & CPUM_SYNC_FPU_STATE)); + ++ /* Notify the support driver prior to loading the guest-FPU register state. */ ++ SUPR0FpuBegin(false /* unused */); + if (!pVM->cpum.s.HostFeatures.fLeakyFxSR) + { + Assert(!(pVCpu->cpum.s.fUseFlags & CPUM_USED_MANUAL_XMM_RESTORE)); +@@ -485,6 +487,8 @@ VMMR0_INT_DECL(bool) CPUMR0FpuStateMaybe + if (pVCpu->cpum.s.fUseFlags & (CPUM_USED_FPU_GUEST | CPUM_USED_FPU_HOST)) + { + fSavedGuest = RT_BOOL(pVCpu->cpum.s.fUseFlags & CPUM_USED_FPU_GUEST); ++ /* Notify the support driver prior to loading the host-FPU register state. */ ++ SUPR0FpuEnd(false /* unused */); + if (!(pVCpu->cpum.s.fUseFlags & CPUM_USED_MANUAL_XMM_RESTORE)) + cpumR0SaveGuestRestoreHostFPUState(&pVCpu->cpum.s); + else +Index: VirtualBox-6.1.34/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp +=================================================================== +--- VirtualBox-6.1.34.orig/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp ++++ VirtualBox-6.1.34/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp +@@ -2002,6 +2002,17 @@ SUPR0DECL(uint32_t) SUPR0GetKernelFeatur + } + + ++SUPR0DECL(bool) SUPR0FpuBegin(bool fCtxHook) ++{ ++ RT_NOREF(fCtxHook); ++ return false; ++} ++ ++ ++SUPR0DECL(void) SUPR0FpuEnd(bool fCtxHook) ++{ ++ RT_NOREF(fCtxHook); ++} + /* + * + * org_virtualbox_SupDrv +Index: VirtualBox-6.1.34/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c +=================================================================== +--- VirtualBox-6.1.34.orig/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c ++++ VirtualBox-6.1.34/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c +@@ -640,3 +640,15 @@ SUPR0DECL(uint32_t) SUPR0GetKernelFeatur + return 0; + } + ++SUPR0DECL(bool) SUPR0FpuBegin(bool fCtxHook) ++{ ++ RT_NOREF(fCtxHook); ++ return false; ++} ++ ++ ++SUPR0DECL(void) SUPR0FpuEnd(bool fCtxHook) ++{ ++ RT_NOREF(fCtxHook); ++} ++ +Index: VirtualBox-6.1.34/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp +=================================================================== +--- VirtualBox-6.1.34.orig/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp ++++ VirtualBox-6.1.34/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp +@@ -541,3 +541,15 @@ SUPR0DECL(uint32_t) SUPR0GetKernelFeatur + return 0; + } + ++SUPR0DECL(bool) SUPR0FpuBegin(bool fCtxHook) ++{ ++ RT_NOREF(fCtxHook); ++ return false; ++} ++ ++ ++SUPR0DECL(void) SUPR0FpuEnd(bool fCtxHook) ++{ ++ RT_NOREF(fCtxHook); ++} ++ +Index: VirtualBox-6.1.34/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp +=================================================================== +--- VirtualBox-6.1.34.orig/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp ++++ VirtualBox-6.1.34/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp +@@ -2703,6 +2703,16 @@ SUPR0DECL(uint32_t) SUPR0GetKernelFeatur + return 0; + } + ++SUPR0DECL(bool) SUPR0FpuBegin(bool fCtxHook) ++{ ++ RT_NOREF(fCtxHook); ++ return false; ++} ++ ++SUPR0DECL(void) SUPR0FpuEnd(bool fCtxHook) ++{ ++ RT_NOREF(fCtxHook); ++} + + SUPR0DECL(int) SUPR0IoCtlSetupForHandle(PSUPDRVSESSION pSession, intptr_t hHandle, uint32_t fFlags, PSUPR0IOCTLCTX *ppCtx) + { +Index: VirtualBox-6.1.34/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c +=================================================================== +--- VirtualBox-6.1.34.orig/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c ++++ VirtualBox-6.1.34/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c +@@ -1309,3 +1309,15 @@ SUPR0DECL(uint32_t) SUPR0GetKernelFeatur + return 0; + } + ++SUPR0DECL(bool) SUPR0FpuBegin(bool fCtxHook) ++{ ++ RT_NOREF(fCtxHook); ++ return false; ++} ++ ++ ++SUPR0DECL(void) SUPR0FpuEnd(bool fCtxHook) ++{ ++ RT_NOREF(fCtxHook); ++} ++ +Index: VirtualBox-6.1.34/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c +=================================================================== +--- VirtualBox-6.1.34.orig/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c ++++ VirtualBox-6.1.34/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c +@@ -1454,6 +1454,31 @@ SUPR0DECL(uint32_t) SUPR0GetKernelFeatur + } + + ++SUPR0DECL(bool) SUPR0FpuBegin(bool fCtxHook) ++{ ++ RT_NOREF(fCtxHook); ++#if RTLNX_VER_MIN(5,18,0) ++ kernel_fpu_begin(); ++ /* if (fCtxHook) */ ++ preempt_enable(); /* HACK ALERT! undo the implicit preempt_disable() in kernel_fpu_begin(). */ ++ return true; ++#else ++ return false; ++#endif ++} ++ ++ ++SUPR0DECL(void) SUPR0FpuEnd(bool fCtxHook) ++{ ++ RT_NOREF(fCtxHook); ++#if RTLNX_VER_MIN(5,18,0) ++ /* if (fCtxHook) */ ++ preempt_disable(); /* HACK ALERT! undo the implicit preempt_enable() in SUPR0FpuBegin(). */ ++ kernel_fpu_end(); ++#endif ++} ++ ++ + int VBOXCALL supdrvOSGetCurrentGdtRw(RTHCUINTPTR *pGdtRw) + { + #if RTLNX_VER_MIN(4,12,0)