VirtualBox

忽略:
時間撮記:
2014-2-13 下午06:01:35 (11 年 以前)
作者:
vboxsync
訊息:

USB/ReadAhead: Don't keep the buffered URBs around when the buffer thread is terminated, later buffering might have a different packet size

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Devices/USB/VUSBReadAhead.cpp

    r46806 r50453  
    174174     * fTerminate to true and returns immediately). Therefore we have to wait until the
    175175     * previous thread is done and all submitted URBs are completed. */
    176     while (pPipe->cSubmitted > 0)
     176    while (   pPipe->cSubmitted > 0
     177           && pPipe->cBuffered > 0)
    177178    {
    178179        Log2(("vusbDevReadAheadThread: still %u packets submitted, waiting before starting...\n", pPipe->cSubmitted));
     
    246247    }
    247248
     249    /*
     250     * Free all still buffered URBs because another endpoint with a different packet size
     251     * and complete different data formats might be served later.
     252     */
     253    while (pPipe->pBuffUrbHead)
     254    {
     255        PVUSBURB pBufferedUrb = pPipe->pBuffUrbHead;
     256
     257        pPipe->pBuffUrbHead = pBufferedUrb->Hci.pNext;
     258        pBufferedUrb->VUsb.pfnFree(pBufferedUrb);
     259    }
     260
     261    pPipe->pBuffUrbTail = NULL;
     262    pPipe->cBuffered = 0;
    248263    RTMemTmpFree(pArgs);
    249264
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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