Changeset 85109 in vbox for trunk/src/VBox/Devices/Network
- Timestamp:
- Jul 8, 2020 2:03:45 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 139043
- Location:
- trunk/src/VBox/Devices/Network
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Network/DevVirtioNet.cpp
r85083 r85109 903 903 return VERR_INVALID_PARAMETER; 904 904 } 905 Hdr.Hdr.u16HdrLen = pGso->cbHdrsTotal;906 Hdr.Hdr.u16GSOSize = pGso->cbMaxSeg;905 Hdr.Hdr.u16HdrLen = pGso->cbHdrsTotal; 906 Hdr.Hdr.u16GSOSize = pGso->cbMaxSeg; 907 907 Hdr.Hdr.u16CSumStart = pGso->offHdr2; 908 Hdr.u16NumBufs = 0; 908 909 STAM_REL_COUNTER_INC(&pThis->StatReceiveGSO); 909 910 } 910 911 else 911 912 { 912 Hdr.Hdr.u8Flags = 0; 913 Hdr.Hdr.u8GSOType = VNETHDR_GSO_NONE; 913 Hdr.Hdr.u8Flags = 0; 914 Hdr.Hdr.u8GSOType = VNETHDR_GSO_NONE; 915 Hdr.Hdr.u16HdrLen = 0; 916 Hdr.Hdr.u16GSOSize = 0; 917 Hdr.Hdr.u16CSumStart = 0; 918 Hdr.Hdr.u16CSumOffset = 0; 919 Hdr.u16NumBufs = 0; 914 920 } 915 921 -
trunk/src/VBox/Devices/Network/DevVirtioNet_1_0.cpp
r85083 r85109 1684 1684 1685 1685 static int virtioNetR3CopyRxPktToGuest(PPDMDEVINS pDevIns, PVIRTIONET pThis, const void *pvBuf, size_t cb, 1686 VIRTIONETPKTHDR *rxPktHdr, uint16_t cSegsAllocated,1686 PVIRTIONETPKTHDR rxPktHdr, uint16_t cSegsAllocated, 1687 1687 PRTSGBUF pVirtSegBufToGuest, PRTSGSEG paVirtSegsToGuest, 1688 1688 PVIRTIONETVIRTQ pRxVirtq) … … 1806 1806 1807 1807 LogFunc(("%s (%RTmac) pGso %s\n", pThis->szInst, pvBuf, pGso ? "present" : "not present")); 1808 VIRTIONETPKTHDR rxPktHdr = { 0 };1808 VIRTIONETPKTHDR rxPktHdr; 1809 1809 1810 1810 if (pGso) … … 1832 1832 return VERR_INVALID_PARAMETER; 1833 1833 } 1834 rxPktHdr.uHdrLen = pGso->cbHdrsTotal; 1835 rxPktHdr.uGsoSize = pGso->cbMaxSeg; 1836 rxPktHdr.uChksumStart = pGso->offHdr2; 1834 rxPktHdr.uHdrLen = pGso->cbHdrsTotal; 1835 rxPktHdr.uGsoSize = pGso->cbMaxSeg; 1836 rxPktHdr.uChksumStart = pGso->offHdr2; 1837 rxPktHdr.uNumBuffers = 0; 1837 1838 STAM_REL_COUNTER_INC(&pThis->StatReceiveGSO); 1838 1839 } 1839 1840 else 1840 1841 { 1841 rxPktHdr.uFlags = 0; 1842 rxPktHdr.uGsoType = VIRTIONET_HDR_GSO_NONE; 1842 rxPktHdr.uFlags = 0; 1843 rxPktHdr.uGsoType = VIRTIONET_HDR_GSO_NONE; 1844 rxPktHdr.uHdrLen = 0; 1845 rxPktHdr.uGsoSize = 0; 1846 rxPktHdr.uChksumStart = 0; 1847 rxPktHdr.uChksumOffset = 0; 1848 rxPktHdr.uNumBuffers = 0; 1843 1849 } 1844 1850 … … 2307 2313 pGso->cbHdrsTotal = pPktHdr->uChksumStart + 2308 2314 ((PRTNETTCP)(((uint8_t*)pSgBuf->aSegs[0].pvSeg) + pPktHdr->uChksumStart))->th_off * 4; 2315 2309 2316 AssertMsgReturn(pSgBuf->cbUsed > pGso->cbHdrsTotal, 2310 ("cbHdrsTotal exceeds size of frame"), VERR_BUFFER_OVERFLOW); 2317 ("cbHdrsTotal exceeds size of frame"), VERR_BUFFER_OVERFLOW); 2318 2311 2319 pGso->cbHdrsSeg = pGso->cbHdrsTotal; 2312 2320 break;
Note:
See TracChangeset
for help on using the changeset viewer.