Date: Mon, 1 Dec 2014 21:23:04 +0000 (UTC) From: Jung-uk Kim <jkim@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r373722 - in head/emulators/virtualbox-ose: . files Message-ID: <201412012123.sB1LN4S2066934@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jkim Date: Mon Dec 1 21:23:03 2014 New Revision: 373722 URL: https://svnweb.freebsd.org/changeset/ports/373722 QAT: https://qat.redports.org/buildarchive/r373722/ Log: Fix crash with USB devices attached. PR: 194196 Modified: head/emulators/virtualbox-ose/Makefile head/emulators/virtualbox-ose/files/patch-src-VBox-Devices-USB-freebsd-USBProxyDevice-freebsd.cpp Modified: head/emulators/virtualbox-ose/Makefile ============================================================================== --- head/emulators/virtualbox-ose/Makefile Mon Dec 1 20:52:09 2014 (r373721) +++ head/emulators/virtualbox-ose/Makefile Mon Dec 1 21:23:03 2014 (r373722) @@ -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/ \ Modified: head/emulators/virtualbox-ose/files/patch-src-VBox-Devices-USB-freebsd-USBProxyDevice-freebsd.cpp ============================================================================== --- head/emulators/virtualbox-ose/files/patch-src-VBox-Devices-USB-freebsd-USBProxyDevice-freebsd.cpp Mon Dec 1 20:52:09 2014 (r373721) +++ head/emulators/virtualbox-ose/files/patch-src-VBox-Devices-USB-freebsd-USBProxyDevice-freebsd.cpp Mon Dec 1 21:23:03 2014 (r373722) @@ -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,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201412012123.sB1LN4S2066934>