Consolidate the virtio VRING resource cleanup into VirtioNetUninitRing().
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);\r
\r
ReleaseTxRing:\r
- VirtioRingUninit (Dev->VirtIo, &Dev->TxRing);\r
+ VirtioNetUninitRing (Dev, &Dev->TxRing);\r
\r
ReleaseRxRing:\r
- VirtioRingUninit (Dev->VirtIo, &Dev->RxRing);\r
+ VirtioNetUninitRing (Dev, &Dev->RxRing);\r
\r
DeviceFailed:\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 the ring.\r
+ @param[in,out] Ring The virtio ring to clean up.\r
+*/\r
+VOID\r
+EFIAPI\r
+VirtioNetUninitRing (\r
+ IN OUT VNET_DEV *Dev,\r
+ IN OUT VRING *Ring\r
+ )\r
+{\r
+ VirtioRingUninit (Dev->VirtIo, Ring);\r
+}\r
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);\r
VirtioNetShutdownRx (Dev);\r
VirtioNetShutdownTx (Dev);\r
- VirtioRingUninit (Dev->VirtIo, &Dev->TxRing);\r
- VirtioRingUninit (Dev->VirtIo, &Dev->RxRing);\r
+ VirtioNetUninitRing (Dev, &Dev->TxRing);\r
+ VirtioNetUninitRing (Dev, &Dev->RxRing);\r
\r
Dev->Snm.State = EfiSimpleNetworkStarted;\r
Status = EFI_SUCCESS;\r
VirtioNetInitialize | | VirtioNetShutdown\r
VirtioNetInitRing {Rx, Tx} | | VirtioNetShutdownRx [SnpSharedHelpers.c]\r
VirtioRingInit | | VirtioNetShutdownTx [SnpSharedHelpers.c]\r
- VirtioNetInitTx | | VirtioRingUninit {Tx, Rx}\r
- VirtioNetInitRx | |\r
+ VirtioNetInitTx | | VirtioNetUninitRing [SnpSharedHelpers.c]\r
+ VirtioNetInitRx | | {Tx, Rx}\r
+ | | VirtioRingUninit\r
v |\r
+-----------------------------+\r
| EfiSimpleNetworkInitialized |\r
IN OUT VNET_DEV *Dev\r
);\r
\r
+VOID\r
+EFIAPI\r
+VirtioNetUninitRing (\r
+ IN OUT VNET_DEV *Dev,\r
+ IN OUT VRING *Ring\r
+ );\r
+\r
//\r
// event callbacks\r
//\r