diff -Nru virtualbox-4.3.18-dfsg/debian/changelog virtualbox-4.3.18-dfsg/debian/changelog --- virtualbox-4.3.18-dfsg/debian/changelog 2015-01-28 03:39:21.000000000 +0100 +++ virtualbox-4.3.18-dfsg/debian/changelog 2015-03-23 10:13:14.000000000 +0100 @@ -1,3 +1,10 @@ +virtualbox (4.3.18-dfsg-2ubuntu2) utopic; urgency=medium + + * d/p/37-fix-virtualbox-hang.patch: fix virtualbox hang + with kernel >= 3.7 (LP: #1435113) + + -- Gianfranco Costamagna Mon, 23 Mar 2015 10:12:42 +0100 + virtualbox (4.3.18-dfsg-2ubuntu1) utopic-security; urgency=medium * SECURITY UPDATE: multiple flaws in experimental video code (LP: #1413603) diff -Nru virtualbox-4.3.18-dfsg/debian/patches/37-fix-virtualbox-hang.patch virtualbox-4.3.18-dfsg/debian/patches/37-fix-virtualbox-hang.patch --- virtualbox-4.3.18-dfsg/debian/patches/37-fix-virtualbox-hang.patch 1970-01-01 01:00:00.000000000 +0100 +++ virtualbox-4.3.18-dfsg/debian/patches/37-fix-virtualbox-hang.patch 2015-03-23 10:11:31.000000000 +0100 @@ -0,0 +1,54 @@ +diff --git a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c +index 4ef40f9..6696d11 100644 +--- a/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c ++++ b/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c +@@ -48,6 +48,12 @@ + # include + # define VBOX_WITH_SUSPEND_NOTIFICATION + #endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0) ++# include ++#else ++static inline void clac(void) { } ++static inline void stac(void) { } ++#endif + + #include + #ifdef CONFIG_DEVFS_FS +@@ -622,6 +628,7 @@ static int VBoxDrvLinuxIOCtl(struct inode *pInode, struct file *pFilp, unsigned + #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 inode *pInode, struct file *pFilp, unsigned + || 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 file *pFilp, unsigned int uCmd, unsigned + /* + * Process the IOCtl. + */ ++ stac(); + rc = supdrvIOCtl(uCmd, &g_DevExt, pSession, pHdr, cbBuf); ++ clac(); + + /* + * Copy ioctl data and output buffer back to user space. diff -Nru virtualbox-4.3.18-dfsg/debian/patches/series virtualbox-4.3.18-dfsg/debian/patches/series --- virtualbox-4.3.18-dfsg/debian/patches/series 2014-10-18 12:17:45.000000000 +0200 +++ virtualbox-4.3.18-dfsg/debian/patches/series 2015-03-23 10:12:21.000000000 +0100 @@ -14,3 +14,4 @@ 32-disable-guest-version-check.patch 35-libvdeplug-soname.patch 36-fix-vnc-version-string.patch +37-fix-virtualbox-hang.patch