VirtualBox

Changeset 90027 in vbox for trunk/src


Ignore:
Timestamp:
Jul 5, 2021 1:58:33 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
145520
Message:

VUSB: Don't needlessly wait just because we need to read a descriptor twice, once to get its size and again to read the whole lot.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/USB/USBProxyDevice.cpp

    r87627 r90027  
    5959    uint16_t cbInitialHint = cbHint;
    6060
    61     LogFlow(("GetStdDescSync: pProxyDev=%s\n", pProxyDev->pUsbIns->pszName));
     61    LogFlow(("GetStdDescSync: pProxyDev=%s, iDescType=%d, iIdx=%d, LangId=%04X, cbHint=%u\n", pProxyDev->pUsbIns->pszName, iDescType, iIdx, LangId, cbHint));
    6262    for (;;)
    6363    {
     
    6868        VUSBURB Urb;
    6969        AssertCompile(RT_SIZEOFMEMB(VUSBURB, abData) >= _4K);
     70        RT_ZERO(Urb);
    7071        Urb.u32Magic      = VUSBURB_MAGIC;
    7172        Urb.enmState      = VUSBURBSTATE_IN_FLIGHT;
    7273        Urb.pszDesc       = (char*)"URB sync";
    73         Urb.pHci          = NULL;
    74         Urb.paTds         = NULL;
    75         Urb.Dev.pvPrivate = NULL;
    76         Urb.Dev.pNext     = NULL;
    7774        Urb.DstAddress    = 0;
    7875        Urb.EndPt         = 0;
     
    8178        Urb.fShortNotOk   = false;
    8279        Urb.enmStatus     = VUSBSTATUS_INVALID;
    83         Urb.pVUsb         = NULL;
    8480        cbHint = RT_MIN(cbHint, sizeof(Urb.abData) - sizeof(VUSBSETUP));
    8581        Urb.cbData = cbHint + sizeof(VUSBSETUP);
     
    159155
    160156            if (cbHint > sizeof(Urb.abData))
    161                 Log(("GetStdDescSync: cbHint=%u, Urb.abData=%u\n", cbHint, sizeof(Urb.abData)));
     157            {
     158                Log(("GetStdDescSync: cbHint=%u, Urb.abData=%u, retrying immediately\n", cbHint, sizeof(Urb.abData)));
     159                /* Not an error, go again without incrementing retry count or delaying. */
     160                continue;
     161            }
    162162
    163163            goto err;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette