From 1f75bd912bd0580eca5bc4d1b6df17603dedfe6f Mon Sep 17 00:00:00 2001 From: idriskalp Date: Mon, 13 Apr 2020 19:41:47 +0300 Subject: [PATCH] module-virtualbox rebuild --- .../files/fixes_for_5.6.patch | 18 ++ .../module-virtualbox/files/timet.patch | 155 ++++++++++++++++++ kernel/drivers/module-virtualbox/pspec.xml | 18 +- 3 files changed, 186 insertions(+), 5 deletions(-) create mode 100644 kernel/drivers/module-virtualbox/files/fixes_for_5.6.patch create mode 100644 kernel/drivers/module-virtualbox/files/timet.patch diff --git a/kernel/drivers/module-virtualbox/files/fixes_for_5.6.patch b/kernel/drivers/module-virtualbox/files/fixes_for_5.6.patch new file mode 100644 index 00000000..ae275343 --- /dev/null +++ b/kernel/drivers/module-virtualbox/files/fixes_for_5.6.patch @@ -0,0 +1,18 @@ +Index: VirtualBox-6.1.2/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c +=================================================================== +--- 6.1.4_OSE/source/vboxdrv/r0drv/linux/memobj-r0drv-linux.c ++++ 6.1.4_OSE/source/vboxdrv/r0drv/linux/memobj-r0drv-linux.c +@@ -1461,9 +1461,13 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKerne + * MMIO / physical memory. + */ + Assert(pMemLnxToMap->Core.enmType == RTR0MEMOBJTYPE_PHYS && !pMemLnxToMap->Core.u.Phys.fAllocated); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) ++ pMemLnx->Core.pv = ioremap(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub); ++#else + 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 + if (pMemLnx->Core.pv) + { + /** @todo fix protection. */ diff --git a/kernel/drivers/module-virtualbox/files/timet.patch b/kernel/drivers/module-virtualbox/files/timet.patch new file mode 100644 index 00000000..573955ad --- /dev/null +++ b/kernel/drivers/module-virtualbox/files/timet.patch @@ -0,0 +1,155 @@ +diff -Naur a/vboxdrv/include/iprt/time.h b/vboxdrv/include/iprt/time.h +--- a/vboxdrv/include/iprt/time.h 2020-02-27 08:29:15.598443630 +0300 ++++ b/vboxdrv/include/iprt/time.h 2020-02-27 09:11:28.528393987 +0300 +@@ -366,6 +366,7 @@ + * @param pTime The time spec to interpret. + * @param pTimeval Where to store the time as POSIX timeval. + */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 5, 99) + DECLINLINE(struct timeval *) RTTimeSpecGetTimeval(PCRTTIMESPEC pTime, struct timeval *pTimeval) + { + int64_t i64 = RTTimeSpecGetMicro(pTime); +@@ -392,12 +393,14 @@ + { + return RTTimeSpecAddMicro(RTTimeSpecSetSeconds(pTime, pTimeval->tv_sec), pTimeval->tv_usec); + } ++#endif + #endif /* various ways of detecting struct timeval */ + + + /* 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_)) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 5, 99) + /** + * Gets the time as POSIX timespec. + * +@@ -431,16 +434,17 @@ + { + return RTTimeSpecAddNano(RTTimeSpecSetSeconds(pTime, pTimespec->tv_sec), pTimespec->tv_nsec); + } ++#endif + + ++#endif /* various ways of detecting struct timespec */ ++ + # ifdef _LINUX_TIME64_H + 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 + + + /** The offset of the unix epoch and the base for NT time (in 100ns units). +diff -Naur a/vboxdrv/r0drv/linux/time-r0drv-linux.c b/vboxdrv/r0drv/linux/time-r0drv-linux.c +--- a/vboxdrv/r0drv/linux/time-r0drv-linux.c 2020-02-27 08:29:15.608443629 +0300 ++++ b/vboxdrv/r0drv/linux/time-r0drv-linux.c 2020-02-27 09:00:17.518407138 +0300 +@@ -43,8 +43,8 @@ + * Use ktime_get_ts, this is also what clock_gettime(CLOCK_MONOTONIC,) is using. + */ + uint64_t u64; +- struct timespec Ts; +- ktime_get_ts(&Ts); ++ struct timespec64 Ts; ++ ktime_get_ts64(&Ts); + u64 = Ts.tv_sec * RT_NS_1SEC_64 + Ts.tv_nsec; + return u64; + +diff -Naur a/vboxnetadp/include/iprt/time.h b/vboxnetadp/include/iprt/time.h +--- a/vboxnetadp/include/iprt/time.h 2020-02-27 08:29:15.598443630 +0300 ++++ b/vboxnetadp/include/iprt/time.h 2020-02-27 09:11:28.528393987 +0300 +@@ -366,6 +366,7 @@ + * @param pTime The time spec to interpret. + * @param pTimeval Where to store the time as POSIX timeval. + */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 5, 99) + DECLINLINE(struct timeval *) RTTimeSpecGetTimeval(PCRTTIMESPEC pTime, struct timeval *pTimeval) + { + int64_t i64 = RTTimeSpecGetMicro(pTime); +@@ -392,12 +393,14 @@ + { + return RTTimeSpecAddMicro(RTTimeSpecSetSeconds(pTime, pTimeval->tv_sec), pTimeval->tv_usec); + } ++#endif + #endif /* various ways of detecting struct timeval */ + + + /* 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_)) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 5, 99) + /** + * Gets the time as POSIX timespec. + * +@@ -431,16 +434,17 @@ + { + return RTTimeSpecAddNano(RTTimeSpecSetSeconds(pTime, pTimespec->tv_sec), pTimespec->tv_nsec); + } ++#endif + + ++#endif /* various ways of detecting struct timespec */ ++ + # ifdef _LINUX_TIME64_H + 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 + + + /** The offset of the unix epoch and the base for NT time (in 100ns units). +diff -Naur a/vboxnetflt/include/iprt/time.h b/vboxnetflt/include/iprt/time.h +--- a/vboxnetflt/include/iprt/time.h 2020-02-27 08:29:15.588443630 +0300 ++++ b/vboxnetflt/include/iprt/time.h 2020-02-27 09:11:28.528393987 +0300 +@@ -366,6 +366,7 @@ + * @param pTime The time spec to interpret. + * @param pTimeval Where to store the time as POSIX timeval. + */ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 5, 99) + DECLINLINE(struct timeval *) RTTimeSpecGetTimeval(PCRTTIMESPEC pTime, struct timeval *pTimeval) + { + int64_t i64 = RTTimeSpecGetMicro(pTime); +@@ -392,12 +393,14 @@ + { + return RTTimeSpecAddMicro(RTTimeSpecSetSeconds(pTime, pTimeval->tv_sec), pTimeval->tv_usec); + } ++#endif + #endif /* various ways of detecting struct timeval */ + + + /* 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_)) ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 5, 99) + /** + * Gets the time as POSIX timespec. + * +@@ -431,16 +434,17 @@ + { + return RTTimeSpecAddNano(RTTimeSpecSetSeconds(pTime, pTimespec->tv_sec), pTimespec->tv_nsec); + } ++#endif + + ++#endif /* various ways of detecting struct timespec */ ++ + # ifdef _LINUX_TIME64_H + 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 + + + /** The offset of the unix epoch and the base for NT time (in 100ns units). diff --git a/kernel/drivers/module-virtualbox/pspec.xml b/kernel/drivers/module-virtualbox/pspec.xml index 1fc7c2c1..cce51724 100644 --- a/kernel/drivers/module-virtualbox/pspec.xml +++ b/kernel/drivers/module-virtualbox/pspec.xml @@ -14,17 +14,18 @@ This package provides the kernel support for VirtualBox. https://sourceforge.net/projects/pisilinux/files/source/module-virtualbox-6.1.4.tar.xz - kernel-module-headers + kernel-module-headers - + + fixes_for_5.6.patch + timet.patch + module-virtualbox - kernel + kernel module-virtualbox-userspace @@ -50,6 +51,13 @@ + + 2020-04-13 + 6.1.4 + Rebuild. + İdris Kalp + idriskalp@gmail.com + 2020-04-03 6.1.4