From owner-svn-ports-all@FreeBSD.ORG Mon Dec 1 21:23:05 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1BF25330; Mon, 1 Dec 2014 21:23:05 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 07ABAAAE; Mon, 1 Dec 2014 21:23:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sB1LN41o066935; Mon, 1 Dec 2014 21:23:04 GMT (envelope-from jkim@FreeBSD.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sB1LN4S2066934; Mon, 1 Dec 2014 21:23:04 GMT (envelope-from jkim@FreeBSD.org) Message-Id: <201412012123.sB1LN4S2066934@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jkim set sender to jkim@FreeBSD.org using -f From: Jung-uk Kim Date: Mon, 1 Dec 2014 21:23:04 +0000 (UTC) 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 X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Dec 2014 21:23:05 -0000 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 #include @@ -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,