Hello community,
here is the log from the commit of package virtualbox for openSUSE:Factory checked in at 2017-12-04 09:59:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/virtualbox (Old)
and /work/SRC/openSUSE:Factory/.virtualbox.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virtualbox"
Mon Dec 4 09:59:58 2017 rev:149 rq:547420 version:5.1.30
Changes:
--------
--- /work/SRC/openSUSE:Factory/virtualbox/virtualbox.changes 2017-11-30 12:37:58.198108497 +0100
+++ /work/SRC/openSUSE:Factory/.virtualbox.new/virtualbox.changes 2017-12-04 10:00:01.285543572 +0100
@@ -1,0 +2,5 @@
+Sat Dec 2 03:57:55 UTC 2017 - Larry.Finger@lwfinger.net
+
+- Update "fixes_for_4.15.patch" for further API changes in kernel 4.15.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fixes_for_4.15.patch ++++++
--- /var/tmp/diff_new_pack.VEdHZv/_old 2017-12-04 10:00:07.393321887 +0100
+++ /var/tmp/diff_new_pack.VEdHZv/_new 2017-12-04 10:00:07.397321742 +0100
@@ -1,15 +1,180 @@
+This patch file makes the necessary changes to the VirtualBox 5.1.30 sources
+to allow the kernel modules to build with kernel 4.15.
+
+The API changes are of several types:
+
+1. The timer initialization routine init_timer_pinned() no longer exists, and
+ is replaced by timer_setup().
+2. The timer callback routine calling sequence is changed as is the technique
+ for getting the timer information from the callback parameters.
+3. The calling sequence for drm_encoder_find() is changed.
+4. The calling sequence for the .get and .set members of the module_param_call()
+ calls have changed.
+
+This patch is released under the MIT license when appropriate, GPLv2 otherwise.
+
+Signed-off-by: Larry Finger
+
Index: VirtualBox-5.1.30/src/VBox/Runtime/r0drv/linux/timer-r0drv-linux.c
===================================================================
--- VirtualBox-5.1.30.orig/src/VBox/Runtime/r0drv/linux/timer-r0drv-linux.c
+++ VirtualBox-5.1.30/src/VBox/Runtime/r0drv/linux/timer-r0drv-linux.c
-@@ -1584,7 +1584,9 @@ RTDECL(int) RTTimerCreateEx(PRTTIMER *pp
+@@ -715,6 +715,14 @@ static enum hrtimer_restart rtTimerLinux
+ #endif /* RTTIMER_LINUX_WITH_HRTIMER */
+
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++/**
++ * Timer callback for kernels 4.15 and later
++ */
++static void rtTimerLinuxStdCallback(struct timer_list *t)
++{
++ PRTTIMERLNXSUBTIMER pSubTimer = from_timer(pSubTimer, t, u.Std.LnxTimer);
++#else
+ /**
+ * Timer callback function for standard timers.
+ *
+@@ -723,6 +731,7 @@ static enum hrtimer_restart rtTimerLinux
+ static void rtTimerLinuxStdCallback(unsigned long ulUser)
+ {
+ PRTTIMERLNXSUBTIMER pSubTimer = (PRTTIMERLNXSUBTIMER)ulUser;
++#endif
+ PRTTIMER pTimer = pSubTimer->pParent;
+
+ RTTIMERLNX_LOG(("stdcallback %p\n", pTimer));
+@@ -1584,13 +1593,17 @@ RTDECL(int) RTTimerCreateEx(PRTTIMER *pp
else
#endif
{
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
-+ __init_timer(&pTimer->aSubTimers[iCpu].u.Std.LnxTimer, TIMER_PINNED);
++ timer_setup(&pTimer->aSubTimers[iCpu].u.Std.LnxTimer,rtTimerLinuxStdCallback, TIMER_PINNED);
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
init_timer_pinned(&pTimer->aSubTimers[iCpu].u.Std.LnxTimer);
#else
init_timer(&pTimer->aSubTimers[iCpu].u.Std.LnxTimer);
+ #endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
+ pTimer->aSubTimers[iCpu].u.Std.LnxTimer.data = (unsigned long)&pTimer->aSubTimers[iCpu];
+ pTimer->aSubTimers[iCpu].u.Std.LnxTimer.function = rtTimerLinuxStdCallback;
++#endif
+ pTimer->aSubTimers[iCpu].u.Std.LnxTimer.expires = jiffies;
+ pTimer->aSubTimers[iCpu].u.Std.u64NextTS = 0;
+ }
+Index: VirtualBox-5.1.30/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
+===================================================================
+--- VirtualBox-5.1.30.orig/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
++++ VirtualBox-5.1.30/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
+@@ -958,7 +958,11 @@ EXPORT_SYMBOL(VBoxGuestIDCCall);
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+
+ /** log and dbg_log parameter setter. */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++static int vgdrvLinuxParamLogGrpSet(const char *pszValue, const struct kernel_param *pParam)
++#else
+ static int vgdrvLinuxParamLogGrpSet(const char *pszValue, struct kernel_param *pParam)
++#endif
+ {
+ if (g_fLoggerCreated)
+ {
+@@ -973,7 +973,11 @@ static int vgdrvLinuxParamLogGrpSet(cons
+ }
+
+ /** log and dbg_log parameter getter. */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++static int vgdrvLinuxParamLogGrpGet(char *pszBuf, const struct kernel_param *pParam)
++#else
+ static int vgdrvLinuxParamLogGrpGet(char *pszBuf, struct kernel_param *pParam)
++#endif
+ {
+ PRTLOGGER pLogger = pParam->name[0] == 'd' ? RTLogDefaultInstance() : RTLogRelGetDefaultInstance();
+ *pszBuf = '\0';
+@@ -984,7 +984,11 @@ static int vgdrvLinuxParamLogGrpGet(char
+
+
+ /** log and dbg_log_flags parameter setter. */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++static int vgdrvLinuxParamLogFlagsSet(const char *pszValue, const struct kernel_param *pParam)
++#else
+ static int vgdrvLinuxParamLogFlagsSet(const char *pszValue, struct kernel_param *pParam)
++#endif
+ {
+ if (g_fLoggerCreated)
+ {
+@@ -998,7 +998,11 @@ static int vgdrvLinuxParamLogFlagsSet(co
+ }
+
+ /** log and dbg_log_flags parameter getter. */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++static int vgdrvLinuxParamLogFlagsGet(char *pszBuf, const struct kernel_param *pParam)
++#else
+ static int vgdrvLinuxParamLogFlagsGet(char *pszBuf, struct kernel_param *pParam)
++#endif
+ {
+ PRTLOGGER pLogger = pParam->name[0] == 'd' ? RTLogDefaultInstance() : RTLogRelGetDefaultInstance();
+ *pszBuf = '\0';
+@@ -1009,7 +1009,11 @@ static int vgdrvLinuxParamLogFlagsGet(ch
+
+
+ /** log and dbg_log_dest parameter setter. */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++static int vgdrvLinuxParamLogDstSet(const char *pszValue, const struct kernel_param *pParam)
++#else
+ static int vgdrvLinuxParamLogDstSet(const char *pszValue, struct kernel_param *pParam)
++#endif
+ {
+ if (g_fLoggerCreated)
+ {
+@@ -1023,7 +1023,11 @@ static int vgdrvLinuxParamLogDstSet(cons
+ }
+
+ /** log and dbg_log_dest parameter getter. */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++static int vgdrvLinuxParamLogDstGet(char *pszBuf, const struct kernel_param *pParam)
++#else
+ static int vgdrvLinuxParamLogDstGet(char *pszBuf, struct kernel_param *pParam)
++#endif
+ {
+ PRTLOGGER pLogger = pParam->name[0] == 'd' ? RTLogDefaultInstance() : RTLogRelGetDefaultInstance();
+ *pszBuf = '\0';
+@@ -1034,7 +1034,11 @@ static int vgdrvLinuxParamLogDstGet(char
+
+
+ /** r3_log_to_host parameter setter. */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++static int vgdrvLinuxParamR3LogToHostSet(const char *pszValue, const struct kernel_param *pParam)
++#else
+ static int vgdrvLinuxParamR3LogToHostSet(const char *pszValue, struct kernel_param *pParam)
++#endif
+ {
+ if ( pszValue == NULL
+ || *pszValue == '\0'
+@@ -1052,7 +1052,11 @@ static int vgdrvLinuxParamR3LogToHostSet
+ }
+
+ /** r3_log_to_host parameter getter. */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++static int vgdrvLinuxParamR3LogToHostGet(char *pszBuf, const struct kernel_param *pParam)
++#else
+ static int vgdrvLinuxParamR3LogToHostGet(char *pszBuf, struct kernel_param *pParam)
++#endif
+ {
+ strcpy(pszBuf, g_DevExt.fLoggingEnabled ? "enabled" : "disabled");
+ return strlen(pszBuf);
+Index: VirtualBox-5.1.30/src/VBox/Additions/linux/drm/vbox_mode.c
+===================================================================
+--- VirtualBox-5.1.30.orig/src/VBox/Additions/linux/drm/vbox_mode.c
++++ VirtualBox-5.1.30/src/VBox/Additions/linux/drm/vbox_mode.c
+@@ -369,7 +369,12 @@ static struct drm_encoder *vbox_best_sin
+ LogFunc(("vboxvideo: %d: connector=%p\n", __LINE__, connector));
+ /* pick the encoder ids */
+ if (enc_id)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
++ return drm_encoder_find(connector->dev, NULL, enc_id);
++#else
+ return drm_encoder_find(connector->dev, enc_id);
++#endif
++
+ LogFunc(("vboxvideo: %d\n", __LINE__));
+ return NULL;
+ }