[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#785201: jessie-pu: package virtualbox/4.3.18-dfsg-3



Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian.org@packages.debian.org
Usertags: pu

Attached patch is targetted for Jessie. In Debian Bug #783142, it was
reported that VBox fails to run on machines with Intel Broadwell
architecture.

Thanks for Gianfranco for preparing the patch, and Moritz Muhlenhoff for
reporting the bug and cherry picking the fix from upstream.


Please review and respond back to this email. Upon receiving your ACK, I
will do the upload.

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (101, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.0.2+ (SMP w/4 CPU cores)
Locale: LANG=en_IN.utf8, LC_CTYPE=en_IN.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff --git a/debian/changelog b/debian/changelog
index bbdde7a..9748983 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+virtualbox (4.3.18-dfsg-4) jessie; urgency=medium
+
+  [ Moritz Mühlenhoff ]
+  * d/p/37-disable-smap.patch, cherry-pick upstream patch to fix a kernel
+    paging issue (LP: #1437845, Closes: #783142).
+
+ -- Ritesh Raj Sarraf <rrs@debian.org>  Wed, 13 May 2015 13:53:36 +0530
+
 virtualbox (4.3.18-dfsg-3) unstable; urgency=medium
 
   * Conflict with upstream proprietary packages 4.3 series.
diff --git a/debian/patches/37-disable-smap.patch b/debian/patches/37-disable-smap.patch
new file mode 100644
index 0000000..c4f52bc
--- /dev/null
+++ b/debian/patches/37-disable-smap.patch
@@ -0,0 +1,58 @@
+Description: Disable SMAP when during VirtualBox kernel calls
+This fixes virtualbox on Broadwell CPUs
+
+https://www.virtualbox.org/ticket/13820
+Author: frank.mehnert@oracle.com
+
+--- virtualbox-4.3.18-dfsg.orig/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
++++ virtualbox-4.3.18-dfsg/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
+@@ -48,6 +48,12 @@
+ # include <iprt/power.h>
+ # define VBOX_WITH_SUSPEND_NOTIFICATION
+ #endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0)
++# include <asm/smap.h>
++#else
++static inline void clac(void) { }
++static inline void stac(void) { }
++#endif
+ 
+ #include <linux/sched.h>
+ #ifdef CONFIG_DEVFS_FS
+@@ -622,6 +628,7 @@ static int VBoxDrvLinuxIOCtl(struct inod
+ #endif
+ {
+     PSUPDRVSESSION pSession = (PSUPDRVSESSION)pFilp->private_data;
++    int rc;
+ 
+     /*
+      * Deal with the two high-speed IOCtl that takes it's arguments from
+@@ -632,12 +639,15 @@ static int VBoxDrvLinuxIOCtl(struct inod
+                       || uCmd == SUP_IOCTL_FAST_DO_HM_RUN
+                       || uCmd == SUP_IOCTL_FAST_DO_NOP)
+                   && pSession->fUnrestricted == true))
+-        return supdrvIOCtlFast(uCmd, ulArg, &g_DevExt, pSession);
++    {
++        stac();
++        rc = supdrvIOCtlFast(uCmd, ulArg, &g_DevExt, pSession);
++        clac();
++        return rc;
++    }
+     return VBoxDrvLinuxIOCtlSlow(pFilp, uCmd, ulArg, pSession);
+ 
+ #else   /* !HAVE_UNLOCKED_IOCTL */
+-
+-    int rc;
+     unlock_kernel();
+     if (RT_LIKELY(   (   uCmd == SUP_IOCTL_FAST_DO_RAW_RUN
+                       || uCmd == SUP_IOCTL_FAST_DO_HM_RUN
+@@ -715,7 +725,9 @@ static int VBoxDrvLinuxIOCtlSlow(struct
+     /*
+      * Process the IOCtl.
+      */
++    stac();
+     rc = supdrvIOCtl(uCmd, &g_DevExt, pSession, pHdr, cbBuf);
++    clac();
+ 
+     /*
+      * Copy ioctl data and output buffer back to user space.
diff --git a/debian/patches/series b/debian/patches/series
index 5b32c83..2af312a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -14,3 +14,4 @@
 32-disable-guest-version-check.patch
 35-libvdeplug-soname.patch
 36-fix-vnc-version-string.patch
+37-disable-smap.patch

Reply to: