VirtualBox

Changeset 78119 in vbox


Ignore:
Timestamp:
Apr 12, 2019 10:19:15 AM (5 years ago)
Author:
vboxsync
Message:

Dev/E1000: (bugref:9427) RX buffer size fix.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/DevE1000.cpp

    r78115 r78119  
    24822482        if (pDesc->u64BufAddr)
    24832483        {
     2484            uint16_t u16RxBufferSize = pThis->u16RxBSize; /* see @bugref{9427} */
     2485
    24842486            /* Update descriptor */
    24852487            pDesc->status        = status;
     
    24952497             * fetched RxD cache entries either.
    24962498             */
    2497             if (cb > pThis->u16RxBSize)
     2499            if (cb > u16RxBufferSize)
    24982500            {
    24992501                pDesc->status.fEOP = false;
    25002502                e1kCsRxLeave(pThis);
    2501                 e1kStoreRxFragment(pThis, pDesc, ptr, pThis->u16RxBSize);
     2503                e1kStoreRxFragment(pThis, pDesc, ptr, u16RxBufferSize);
    25022504                rc = e1kCsRxEnter(pThis, VERR_SEM_BUSY);
    25032505                if (RT_UNLIKELY(rc != VINF_SUCCESS))
    25042506                    return rc;
    2505                 ptr += pThis->u16RxBSize;
    2506                 cb -= pThis->u16RxBSize;
     2507                ptr += u16RxBufferSize;
     2508                cb -= u16RxBufferSize;
    25072509            }
    25082510            else
     
    31583160    if (value & RCTL_BSEX)
    31593161        cbRxBuf *= 16;
     3162    if (cbRxBuf > E1K_MAX_RX_PKT_SIZE)
     3163        cbRxBuf = E1K_MAX_RX_PKT_SIZE;
    31603164    if (cbRxBuf != pThis->u16RxBSize)
    31613165        E1kLog2(("%s e1kRegWriteRCTL: Setting receive buffer size to %d (old %d)\n",
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