aboutsummaryrefslogtreecommitdiffstats
path: root/emulators/virtualbox-ose
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2014-12-02 05:23:03 +0800
committerJung-uk Kim <jkim@FreeBSD.org>2014-12-02 05:23:03 +0800
commita0ce82c1ce9ff3c39049acf1032f0fd7887ef775 (patch)
treeb99372e75ab883b555f18d998b414911c43559ff /emulators/virtualbox-ose
parent49bda2d1bda338110eeb843d2dc71e98732ee630 (diff)
downloadfreebsd-ports-gnome-a0ce82c1ce9ff3c39049acf1032f0fd7887ef775.tar.gz
freebsd-ports-gnome-a0ce82c1ce9ff3c39049acf1032f0fd7887ef775.tar.zst
freebsd-ports-gnome-a0ce82c1ce9ff3c39049acf1032f0fd7887ef775.zip
Fix crash with USB devices attached.
PR: 194196
Diffstat (limited to 'emulators/virtualbox-ose')
-rw-r--r--emulators/virtualbox-ose/Makefile1
-rw-r--r--emulators/virtualbox-ose/files/patch-src-VBox-Devices-USB-freebsd-USBProxyDevice-freebsd.cpp48
2 files changed, 39 insertions, 10 deletions
diff --git a/emulators/virtualbox-ose/Makefile b/emulators/virtualbox-ose/Makefile
index 1ba2d9bff2fb..61e01518cf34 100644
--- a/emulators/virtualbox-ose/Makefile
+++ b/emulators/virtualbox-ose/Makefile
@@ -3,6 +3,7 @@
PORTNAME= virtualbox-ose
DISTVERSION= 4.3.20
+PORTREVISION= 1
CATEGORIES= emulators
MASTER_SITES= http://download.virtualbox.org/virtualbox/${DISTVERSION}/ \
http://tmp.chruetertee.ch/ \
diff --git a/emulators/virtualbox-ose/files/patch-src-VBox-Devices-USB-freebsd-USBProxyDevice-freebsd.cpp b/emulators/virtualbox-ose/files/patch-src-VBox-Devices-USB-freebsd-USBProxyDevice-freebsd.cpp
index 98547e544c6d..0224a77751ba 100644
--- a/emulators/virtualbox-ose/files/patch-src-VBox-Devices-USB-freebsd-USBProxyDevice-freebsd.cpp
+++ b/emulators/virtualbox-ose/files/patch-src-VBox-Devices-USB-freebsd-USBProxyDevice-freebsd.cpp
@@ -1,5 +1,5 @@
---- src/VBox/Devices/USB/freebsd/USBProxyDevice-freebsd.cpp.orig 2014-10-11 08:06:56.000000000 -0400
-+++ src/VBox/Devices/USB/freebsd/USBProxyDevice-freebsd.cpp 2014-11-18 15:10:55.000000000 -0500
+--- src/VBox/Devices/USB/freebsd/USBProxyDevice-freebsd.cpp.orig 2014-11-21 16:22:08.000000000 +0100
++++ src/VBox/Devices/USB/freebsd/USBProxyDevice-freebsd.cpp 2014-11-28 17:25:16.000000000 +0100
@@ -52,6 +52,7 @@
#include <iprt/asm.h>
#include <iprt/string.h>
@@ -48,7 +48,7 @@
}
RTFileClose(hFile);
-@@ -449,11 +461,13 @@
+@@ -449,12 +461,12 @@
usbProxyFreeBSDFsUnInit(pProxyDev);
@@ -58,12 +58,26 @@
RTFileClose(pDevFBSD->hFile);
pDevFBSD->hFile = NIL_RTFILE;
- RTMemFree(pDevFBSD);
+- RTMemFree(pDevFBSD);
- pProxyDev->Backend.pv = NULL;
-
+-
LogFlow(("usbProxyFreeBSDClose: returns\n"));
}
-@@ -822,7 +836,7 @@
+
+@@ -688,9 +700,10 @@
+ pUrb, (unsigned)pUrb->EndPt, (unsigned)pUrb->enmDir));
+
+ ep_num = pUrb->EndPt;
+-
+- if ((pUrb->enmType != VUSBXFERTYPE_MSG) && (pUrb->enmDir == VUSBDIRECTION_IN))
++ if ((pUrb->enmType != VUSBXFERTYPE_MSG) && (pUrb->enmDir == VUSBDIRECTION_IN)) {
++ /* set IN-direction bit */
+ ep_num |= 0x80;
++ }
+
+ index = 0;
+
+@@ -822,7 +835,7 @@
PUSBENDPOINTFBSD pEndpointFBSD;
PVUSBURB pUrb;
struct usb_fs_complete UsbFsComplete;
@@ -72,9 +86,12 @@
int rc;
LogFlow(("usbProxyFreeBSDUrbReap: pProxyDev=%p, cMillies=%u\n",
-@@ -948,21 +962,34 @@
+@@ -946,23 +959,38 @@
+ (unsigned)pEndpointFBSD->acbData[1]));
+
}
- else if (cMillies && rc == VERR_RESOURCE_BUSY)
+- else if (cMillies && rc == VERR_RESOURCE_BUSY)
++ else if (cMillies != 0 && rc == VERR_RESOURCE_BUSY)
{
- /* Poll for finished transfers */
- PollFd.fd = RTFileToNative(pDevFBSD->hFile);
@@ -108,6 +125,8 @@
+ uint8_t bRead;
+ size_t cbIgnored = 0;
+ RTPipeRead(pDevFBSD->hPipeWakeupR, &bRead, 1, &cbIgnored);
++ /* Make sure we return from this function */
++ cMillies = 0;
+ }
+ break;
+ }
@@ -120,7 +139,7 @@
}
return pUrb;
}
-@@ -984,6 +1011,16 @@
+@@ -984,6 +1012,16 @@
return usbProxyFreeBSDEndpointClose(pProxyDev, index);
}
@@ -137,7 +156,16 @@
/**
* The FreeBSD USB Proxy Backend.
*/
-@@ -1005,6 +1042,7 @@
+@@ -992,7 +1030,7 @@
+ /* pszName */
+ "host",
+ /* cbBackend */
+- sizeof(PUSBPROXYDEVFBSD),
++ sizeof(USBPROXYDEVFBSD),
+ usbProxyFreeBSDOpen,
+ usbProxyFreeBSDInit,
+ usbProxyFreeBSDClose,
+@@ -1005,6 +1043,7 @@
usbProxyFreeBSDUrbQueue,
usbProxyFreeBSDUrbCancel,
usbProxyFreeBSDUrbReap,