Changeset 100371 in vbox for trunk/src/VBox/Devices/Storage
- Timestamp:
- Jul 5, 2023 7:47:33 AM (22 months ago)
- svn:sync-xref-src-repo-rev:
- 158108
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DevVirtioSCSI.cpp
r99739 r100371 1648 1648 for (int i = 0; i < pWorkerR3->cRedoDescs; i++) 1649 1649 { 1650 #ifdef VIRTIO_VBUF_ON_STACK1651 1650 PVIRTQBUF pVirtqBuf = virtioCoreR3VirtqBufAlloc(); 1652 1651 if (!pVirtqBuf) … … 1657 1656 int rc = virtioCoreR3VirtqAvailBufGet(pDevIns, &pThis->Virtio, uVirtqNbr, 1658 1657 pWorkerR3->auRedoDescs[i], pVirtqBuf); 1659 #else /* !VIRTIO_VBUF_ON_STACK */ 1660 PVIRTQBUF pVirtqBuf; 1661 int rc = virtioCoreR3VirtqAvailBufGet(pDevIns, &pThis->Virtio, uVirtqNbr, 1662 pWorkerR3->auRedoDescs[i], &pVirtqBuf); 1663 #endif /* !VIRTIO_VBUF_ON_STACK */ 1664 if (RT_FAILURE(rc)) 1665 LogRel(("Error fetching desc chain to redo, %Rrc", rc)); 1666 1667 rc = virtioScsiR3ReqSubmit(pDevIns, pThis, pThisCC, uVirtqNbr, pVirtqBuf); 1668 if (RT_FAILURE(rc)) 1669 LogRel(("Error submitting req packet, resetting %Rrc", rc)); 1658 if (RT_FAILURE(rc)) 1659 LogRel(("Error fetching desc chain to redo, %Rrc", rc)); 1660 1661 rc = virtioScsiR3ReqSubmit(pDevIns, pThis, pThisCC, uVirtqNbr, pVirtqBuf); 1662 if (RT_FAILURE(rc)) 1663 LogRel(("Error submitting req packet, resetting %Rrc", rc)); 1670 1664 1671 1665 virtioCoreR3VirtqBufRelease(&pThis->Virtio, pVirtqBuf); … … 1674 1668 1675 1669 Log6Func(("fetching next descriptor chain from %s\n", VIRTQNAME(uVirtqNbr))); 1676 #ifdef VIRTIO_VBUF_ON_STACK1677 1670 PVIRTQBUF pVirtqBuf = virtioCoreR3VirtqBufAlloc(); 1678 1671 if (!pVirtqBuf) … … 1680 1673 else 1681 1674 { 1682 int rc = virtioCoreR3VirtqAvailBufGet(pDevIns, &pThis->Virtio, uVirtqNbr, pVirtqBuf, true); 1683 #else /* !VIRTIO_VBUF_ON_STACK */ 1684 PVIRTQBUF pVirtqBuf = NULL; 1685 int rc = virtioCoreR3VirtqAvailBufGet(pDevIns, &pThis->Virtio, uVirtqNbr, &pVirtqBuf, true); 1686 #endif /* !VIRTIO_VBUF_ON_STACK */ 1687 if (rc == VERR_NOT_AVAILABLE) 1688 { 1689 Log6Func(("Nothing found in %s\n", VIRTQNAME(uVirtqNbr))); 1690 virtioCoreR3VirtqBufRelease(&pThis->Virtio, pVirtqBuf); 1691 continue; 1692 } 1693 1694 AssertRC(rc); 1695 if (uVirtqNbr == CONTROLQ_IDX) 1696 virtioScsiR3Ctrl(pDevIns, pThis, pThisCC, uVirtqNbr, pVirtqBuf); 1697 else /* request queue index */ 1698 { 1699 rc = virtioScsiR3ReqSubmit(pDevIns, pThis, pThisCC, uVirtqNbr, pVirtqBuf); 1700 if (RT_FAILURE(rc)) 1701 LogRel(("Error submitting req packet, resetting %Rrc", rc)); 1702 } 1703 1704 virtioCoreR3VirtqBufRelease(&pThis->Virtio, pVirtqBuf); 1705 #ifdef VIRTIO_VBUF_ON_STACK 1675 int rc = virtioCoreR3VirtqAvailBufGet(pDevIns, &pThis->Virtio, uVirtqNbr, pVirtqBuf, true); 1676 if (rc == VERR_NOT_AVAILABLE) 1677 { 1678 Log6Func(("Nothing found in %s\n", VIRTQNAME(uVirtqNbr))); 1679 virtioCoreR3VirtqBufRelease(&pThis->Virtio, pVirtqBuf); 1680 continue; 1681 } 1682 1683 AssertRC(rc); 1684 if (uVirtqNbr == CONTROLQ_IDX) 1685 virtioScsiR3Ctrl(pDevIns, pThis, pThisCC, uVirtqNbr, pVirtqBuf); 1686 else /* request queue index */ 1687 { 1688 rc = virtioScsiR3ReqSubmit(pDevIns, pThis, pThisCC, uVirtqNbr, pVirtqBuf); 1689 if (RT_FAILURE(rc)) 1690 LogRel(("Error submitting req packet, resetting %Rrc", rc)); 1691 } 1692 1693 virtioCoreR3VirtqBufRelease(&pThis->Virtio, pVirtqBuf); 1706 1694 } 1707 #endif /* VIRTIO_VBUF_ON_STACK */1708 1695 } 1709 1696 }
Note:
See TracChangeset
for help on using the changeset viewer.