IN OUT VNET_DEV *Dev\r
)\r
{\r
- FreePool (Dev->RxBuf);\r
+ Dev->VirtIo->UnmapSharedBuffer (Dev->VirtIo, Dev->RxBufMap);\r
+ Dev->VirtIo->FreeSharedPages (\r
+ Dev->VirtIo,\r
+ Dev->RxBufNrPages,\r
+ Dev->RxBuf\r
+ );\r
}\r
\r
\r
IN OUT VNET_DEV *Dev\r
)\r
{\r
+ Dev->VirtIo->UnmapSharedBuffer (Dev->VirtIo, Dev->TxSharedReqMap);\r
+ Dev->VirtIo->FreeSharedPages (\r
+ Dev->VirtIo,\r
+ EFI_SIZE_TO_PAGES (sizeof *(Dev->TxSharedReq)),\r
+ Dev->TxSharedReq\r
+ );\r
+\r
FreePool (Dev->TxFreeStack);\r
}\r
+\r
+/**\r
+ Release TX and RX VRING resources.\r
+\r
+ @param[in,out] Dev The VNET_DEV driver instance which was using\r
+ the ring.\r
+ @param[in,out] Ring The virtio ring to clean up.\r
+ @param[in] RingMap A token return from the VirtioRingMap()\r
+*/\r
+VOID\r
+EFIAPI\r
+VirtioNetUninitRing (\r
+ IN OUT VNET_DEV *Dev,\r
+ IN OUT VRING *Ring,\r
+ IN VOID *RingMap\r
+ )\r
+{\r
+ Dev->VirtIo->UnmapSharedBuffer (Dev->VirtIo, RingMap);\r
+ VirtioRingUninit (Dev->VirtIo, Ring);\r
+}\r