OvmfPkg/VirtioNetDxe: add helper VirtioNetUninitRing()

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>
This commit is contained in:
Brijesh Singh 2017-09-14 16:22:40 -05:00 committed by Laszlo Ersek
parent b30abe7df4
commit 55dd5a673b
5 changed files with 30 additions and 6 deletions

View File

@ -510,10 +510,10 @@ AbortDevice:
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);
ReleaseTxRing:
VirtioRingUninit (Dev->VirtIo, &Dev->TxRing);
VirtioNetUninitRing (Dev, &Dev->TxRing);
ReleaseRxRing:
VirtioRingUninit (Dev->VirtIo, &Dev->RxRing);
VirtioNetUninitRing (Dev, &Dev->RxRing);
DeviceFailed:
//

View File

@ -51,3 +51,19 @@ VirtioNetShutdownTx (
{
FreePool (Dev->TxFreeStack);
}
/**
Release TX and RX VRING resources.
@param[in,out] Dev The VNET_DEV driver instance which was using the ring.
@param[in,out] Ring The virtio ring to clean up.
*/
VOID
EFIAPI
VirtioNetUninitRing (
IN OUT VNET_DEV *Dev,
IN OUT VRING *Ring
)
{
VirtioRingUninit (Dev->VirtIo, Ring);
}

View File

@ -67,8 +67,8 @@ VirtioNetShutdown (
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);
VirtioNetShutdownRx (Dev);
VirtioNetShutdownTx (Dev);
VirtioRingUninit (Dev->VirtIo, &Dev->TxRing);
VirtioRingUninit (Dev->VirtIo, &Dev->RxRing);
VirtioNetUninitRing (Dev, &Dev->TxRing);
VirtioNetUninitRing (Dev, &Dev->RxRing);
Dev->Snm.State = EfiSimpleNetworkStarted;
Status = EFI_SUCCESS;

View File

@ -70,8 +70,9 @@ faithfully indented) that implement the transition.
VirtioNetInitialize | | VirtioNetShutdown
VirtioNetInitRing {Rx, Tx} | | VirtioNetShutdownRx [SnpSharedHelpers.c]
VirtioRingInit | | VirtioNetShutdownTx [SnpSharedHelpers.c]
VirtioNetInitTx | | VirtioRingUninit {Tx, Rx}
VirtioNetInitRx | |
VirtioNetInitTx | | VirtioNetUninitRing [SnpSharedHelpers.c]
VirtioNetInitRx | | {Tx, Rx}
| | VirtioRingUninit
v |
+-----------------------------+
| EfiSimpleNetworkInitialized |

View File

@ -263,6 +263,13 @@ VirtioNetShutdownTx (
IN OUT VNET_DEV *Dev
);
VOID
EFIAPI
VirtioNetUninitRing (
IN OUT VNET_DEV *Dev,
IN OUT VRING *Ring
);
//
// event callbacks
//