VirtualBox

Changeset 15541 in vbox


Ignore:
Timestamp:
Dec 15, 2008 8:29:08 PM (16 years ago)
Author:
vboxsync
Message:

Don't exit intnet receive loop if sem wait inside NIC was interrupted. Fixes hostif net loss after VM reboot.

File:
1 edited

Legend:

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

    r14457 r15541  
    464464                    if (RT_FAILURE(rc))
    465465                    {
    466                         STAM_PROFILE_ADV_STOP(&pThis->StatReceive, a);
    467                         LogFlow(("drvIntNetAsyncIoRun: returns %Rrc (wait-for-space)\n", rc));
    468                         return rc;
     466                        if (rc == VERR_INTERRUPTED)
     467                        {
     468                            /*
     469                             * NIC is going down, likely because the VM is being reset. Skip the frame.
     470                             */
     471                            AssertMsg(pHdr->u16Type == INTNETHDR_TYPE_FRAME, ("Unknown frame type %RX16! offRead=%#x\n",
     472                                                                              pHdr->u16Type, pRingBuf->offRead));
     473                            INTNETRingSkipFrame(pBuf, pRingBuf);
     474                        }
     475                        else
     476                        {
     477                            STAM_PROFILE_ADV_STOP(&pThis->StatReceive, a);
     478                            LogFlow(("drvIntNetAsyncIoRun: returns %Rrc (wait-for-space)\n", rc));
     479                            return rc;
     480                        }
    469481                    }
    470482                }
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