From 19e45106c1ce3c265585ec0e699a6faab3decb2a Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Wed, 15 Apr 2020 14:53:33 +0200 Subject: [PATCH] up to 6.1.6 --- VirtualBox.spec | 10 +-- kernel-5.6.patch | 228 ----------------------------------------------- 2 files changed, 4 insertions(+), 234 deletions(-) delete mode 100644 kernel-5.6.patch diff --git a/VirtualBox.spec b/VirtualBox.spec index 62bf892..6eab6f3 100644 --- a/VirtualBox.spec +++ b/VirtualBox.spec @@ -47,19 +47,19 @@ exit 1 %define qtver 5.6.0 -%define rel 2 +%define rel 1 %define pname VirtualBox Summary: VirtualBox - x86 hardware virtualizer Summary(pl.UTF-8): VirtualBox - wirtualizator sprzętu x86 Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel} -Version: 6.1.4 +Version: 6.1.6 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}} License: GPL v2 Group: Applications/Emulators Source0: http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}.tar.bz2 -# Source0-md5: b3ffc51c1f082743f22bfcb71b75a396 +# Source0-md5: fe6328d22dfb20ea372daa4b58b12374 Source1: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso -# Source1-md5: 802a44ad374ecc00639bdce9acb1842f +# Source1-md5: ab8b016b524a4e2190bdd5908d3202c8 Source2: vboxservice.init Source3: vboxservice.service Source4: vboxservice.sysconfig @@ -88,7 +88,6 @@ Patch15: %{pname}-lightdm-1.19.2.patch Patch16: %{pname}-no-vboxvideo.patch Patch17: qt5-gl.patch Patch18: eflags.ac.patch -Patch19: kernel-5.6.patch URL: http://www.virtualbox.org/ %if %{with userspace} %ifarch %{x8664} @@ -557,7 +556,6 @@ echo override vboxsf %{_kernel_ver} misc > kernel/installed/etc/depmod.d/%{_kern %patch16 -p0 %patch17 -p1 %patch18 -p1 -%patch19 -p0 %{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \ -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in diff --git a/kernel-5.6.patch b/kernel-5.6.patch deleted file mode 100644 index a5462c3..0000000 --- a/kernel-5.6.patch +++ /dev/null @@ -1,228 +0,0 @@ -Index: include/iprt/time.h -=================================================================== ---- include/iprt/time.h (revision 83470) -+++ include/iprt/time.h (revision 83471) -@@ -359,6 +359,12 @@ - /* PORTME: Add struct timeval guard macro here. */ - #if defined(RTTIME_INCL_TIMEVAL) || defined(_STRUCT_TIMEVAL) || defined(_SYS__TIMEVAL_H_) || defined(_SYS_TIME_H) || defined(_TIMEVAL) || defined(_LINUX_TIME_H) \ - || (defined(RT_OS_NETBSD) && defined(_SYS_TIME_H_)) -+/* -+ * Starting with Linux kernel version 5.6-rc3, the struct timeval is no longer -+ * available to kernel code and must not be used in kernel code. -+ * Only 64-bit time-interfaces are allowed into the kernel. -+ */ -+# if defined(RT_OS_LINUX) && (!defined(__KERNEL__) || !defined(_LINUX_TIME64_H)) - /** - * Gets the time as POSIX timeval. - * -@@ -392,6 +398,7 @@ - { - return RTTimeSpecAddMicro(RTTimeSpecSetSeconds(pTime, pTimeval->tv_sec), pTimeval->tv_usec); - } -+# endif /* RT_OS_LINUX ... */ - #endif /* various ways of detecting struct timeval */ - - -@@ -431,15 +438,19 @@ - { - return RTTimeSpecAddNano(RTTimeSpecSetSeconds(pTime, pTimespec->tv_sec), pTimespec->tv_nsec); - } -+#endif /* various ways of detecting struct timespec */ - -- --# ifdef _LINUX_TIME64_H -+#if defined(RT_OS_LINUX) && defined(_LINUX_TIME64_H) -+/* -+ * Starting with Linux kernel version 5.6-rc3, the _STRUCT_TIMESPEC is only defined -+ * under !__KERNEL__ guard and _LINUX_TIME64_H does not define a corresponding -+ * _STRUCT_TIMESPEC64. Only 64-bit time-interfaces are now allowed into the kernel. -+ */ - DECLINLINE(PRTTIMESPEC) RTTimeSpecSetTimespec64(PRTTIMESPEC pTime, const struct timespec64 *pTimeval) - { - return RTTimeSpecAddNano(RTTimeSpecSetSeconds(pTime, pTimeval->tv_sec), pTimeval->tv_nsec); - } --# endif --#endif /* various ways of detecting struct timespec */ -+#endif /* RT_OS_LINUX && _LINUX_TIME64_H */ - - - -Index: src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -=================================================================== ---- src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c (revision 83470) -+++ src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c (revision 83471) -@@ -1461,9 +1461,19 @@ - * MMIO / physical memory. - */ - Assert(pMemLnxToMap->Core.enmType == RTR0MEMOBJTYPE_PHYS && !pMemLnxToMap->Core.u.Phys.fAllocated); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25) -+ /* -+ * ioremap() defaults to no caching since the 2.6 kernels. -+ * ioremap_nocache() has been removed finally in 5.6-rc1. -+ */ - pMemLnx->Core.pv = pMemLnxToMap->Core.u.Phys.uCachePolicy == RTMEM_CACHE_POLICY_MMIO -+ ? ioremap(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub) -+ : ioremap_cache(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub); -+#else /* KERNEL_VERSION < 2.6.25 */ -+ pMemLnx->Core.pv = pMemLnxToMap->Core.u.Phys.uCachePolicy == RTMEM_CACHE_POLICY_MMIO - ? ioremap_nocache(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub) - : ioremap(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub); -+#endif /* KERNEL_VERSION < 2.6.25 */ - if (pMemLnx->Core.pv) - { - /** @todo fix protection. */ -Index: src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c -=================================================================== ---- src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c (revision 83470) -+++ src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c (revision 83471) -@@ -38,12 +38,24 @@ - - DECLINLINE(uint64_t) rtTimeGetSystemNanoTS(void) - { --#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 16) /* This must match timer-r0drv-linux.c! */ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) - /* -+ * Starting with kernel version 5.6-rc3 only 64-bit time interfaces -+ * are allowed in the kernel. -+ */ -+ uint64_t u64; -+ struct timespec64 Ts = { 0, 0 }; -+ -+ ktime_get_ts64(&Ts); -+ u64 = Ts.tv_sec * RT_NS_1SEC_64 + Ts.tv_nsec; -+ return u64; -+ -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 16) /* This must match timer-r0drv-linux.c! */ -+ /* - * Use ktime_get_ts, this is also what clock_gettime(CLOCK_MONOTONIC,) is using. - */ - uint64_t u64; -- struct timespec Ts; -+ struct timespec Ts = { 0, 0 }; - ktime_get_ts(&Ts); - u64 = Ts.tv_sec * RT_NS_1SEC_64 + Ts.tv_nsec; - return u64; -Index: src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c -=================================================================== ---- src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c (revision 83470) -+++ src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c (revision 83471) -@@ -842,15 +842,27 @@ - rcLnx = pci_request_region(pPciDev, iRegion, "vboxpci"); - if (!rcLnx) - { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25) -+ /* -+ * ioremap() defaults to no caching since the 2.6 kernels. -+ * ioremap_nocache() has been removed finally in 5.6-rc1. -+ */ -+ RTR0PTR R0PtrMapping = ioremap(pci_resource_start(pPciDev, iRegion), -+ pci_resource_len(pPciDev, iRegion)); -+#else /* KERNEL_VERSION < 2.6.25 */ - /* For now no caching, try to optimize later. */ - RTR0PTR R0PtrMapping = ioremap_nocache(pci_resource_start(pPciDev, iRegion), - pci_resource_len(pPciDev, iRegion)); -- -+#endif /* KERNEL_VERSION < 2.6.25 */ - if (R0PtrMapping != NIL_RTR0PTR) - pIns->aRegionR0Mapping[iRegion] = R0PtrMapping; - else - { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25) -+ vbpci_printk(KERN_DEBUG, pPciDev, "ioremap() failed\n"); -+#else - vbpci_printk(KERN_DEBUG, pPciDev, "ioremap_nocache() failed\n"); -+#endif - pci_release_region(pPciDev, iRegion); - rc = VERR_MAP_FAILED; - } -Index: include/iprt/time.h -=================================================================== ---- include/iprt/time.h (revision 83472) -+++ include/iprt/time.h (revision 83473) -@@ -357,14 +357,18 @@ - - - /* PORTME: Add struct timeval guard macro here. */ --#if defined(RTTIME_INCL_TIMEVAL) || defined(_STRUCT_TIMEVAL) || defined(_SYS__TIMEVAL_H_) || defined(_SYS_TIME_H) || defined(_TIMEVAL) || defined(_LINUX_TIME_H) \ -- || (defined(RT_OS_NETBSD) && defined(_SYS_TIME_H_)) - /* - * Starting with Linux kernel version 5.6-rc3, the struct timeval is no longer - * available to kernel code and must not be used in kernel code. - * Only 64-bit time-interfaces are allowed into the kernel. - */ --# if defined(RT_OS_LINUX) && (!defined(__KERNEL__) || !defined(_LINUX_TIME64_H)) -+#if defined(RT_OS_LINUX) && (defined(__KERNEL__) || defined(_LINUX_TIME64_H)) -+#define RTTIME_NO_TIMEVAL -+#endif -+#if !defined(RTTIME_NO_TIMEVAL) \ -+ && (defined(RTTIME_INCL_TIMEVAL) || defined(_STRUCT_TIMEVAL) || defined(_SYS__TIMEVAL_H_) \ -+ || defined(_SYS_TIME_H) || defined(_TIMEVAL) || defined(_LINUX_TIME_H) \ -+ || (defined(RT_OS_NETBSD) && defined(_SYS_TIME_H_))) - /** - * Gets the time as POSIX timeval. - * -@@ -398,7 +402,6 @@ - { - return RTTimeSpecAddMicro(RTTimeSpecSetSeconds(pTime, pTimeval->tv_sec), pTimeval->tv_usec); - } --# endif /* RT_OS_LINUX ... */ - #endif /* various ways of detecting struct timeval */ - - -Index: include/iprt/time.h -=================================================================== ---- include/iprt/time.h (revision 83483) -+++ include/iprt/time.h (revision 83484) -@@ -406,8 +406,20 @@ - - - /* PORTME: Add struct timespec guard macro here. */ --#if defined(RTTIME_INCL_TIMESPEC) || defined(_STRUCT_TIMESPEC) || defined(_SYS__TIMESPEC_H_) || defined(TIMEVAL_TO_TIMESPEC) || defined(_TIMESPEC) \ -- || (defined(RT_OS_NETBSD) && defined(_SYS_TIME_H_)) -+/* -+ * Starting with Linux kernel version 5.6-rc3, the _STRUCT_TIMESPEC is only defined -+ * under !__KERNEL__ guard and _LINUX_TIME64_H does not define a corresponding -+ * _STRUCT_TIMESPEC64. Only 64-bit time-interfaces are now allowed into the kernel. -+ * We have to keep it for __KERNEL__ though to support older guest kernels (2.6.X) -+ * without _LINUX_TIME64_H. -+ */ -+#if defined(RT_OS_LINUX) && defined(_LINUX_TIME64_H) -+#define RTTIME_NO_TIMESPEC -+#endif -+#if !defined(RTTIME_NO_TIMESPEC) \ -+ && (defined(RTTIME_INCL_TIMESPEC) || defined(_STRUCT_TIMESPEC) || defined(_SYS__TIMESPEC_H_) \ -+ || defined(TIMEVAL_TO_TIMESPEC) || defined(_TIMESPEC) \ -+ || (defined(RT_OS_NETBSD) && defined(_SYS_TIME_H_))) - /** - * Gets the time as POSIX timespec. - * -@@ -443,12 +455,7 @@ - } - #endif /* various ways of detecting struct timespec */ - --#if defined(RT_OS_LINUX) && defined(_LINUX_TIME64_H) --/* -- * Starting with Linux kernel version 5.6-rc3, the _STRUCT_TIMESPEC is only defined -- * under !__KERNEL__ guard and _LINUX_TIME64_H does not define a corresponding -- * _STRUCT_TIMESPEC64. Only 64-bit time-interfaces are now allowed into the kernel. -- */ -+#if defined(RTTIME_NO_TIMESPEC) - DECLINLINE(PRTTIMESPEC) RTTimeSpecSetTimespec64(PRTTIMESPEC pTime, const struct timespec64 *pTimeval) - { - return RTTimeSpecAddNano(RTTimeSpecSetSeconds(pTime, pTimeval->tv_sec), pTimeval->tv_nsec); -Index: src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c -=================================================================== ---- src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c (revision 83483) -+++ src/VBox/Runtime/r0drv/linux/time-r0drv-linux.c (revision 83484) -@@ -194,9 +194,9 @@ - IPRT_LINUX_RESTORE_EFL_AC(); - # ifdef _LINUX_TIME64_H - return RTTimeSpecSetTimespec64(pTime, &Ts); --#else -+# else - return RTTimeSpecSetTimespec(pTime, &Ts); --#endif -+# endif - #else /* < 2.6.16 */ - struct timeval Tv; - do_gettimeofday(&Tv); -- 2.43.0