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:
parent
b30abe7df4
commit
55dd5a673b
@ -510,10 +510,10 @@ AbortDevice:
|
|||||||
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);
|
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);
|
||||||
|
|
||||||
ReleaseTxRing:
|
ReleaseTxRing:
|
||||||
VirtioRingUninit (Dev->VirtIo, &Dev->TxRing);
|
VirtioNetUninitRing (Dev, &Dev->TxRing);
|
||||||
|
|
||||||
ReleaseRxRing:
|
ReleaseRxRing:
|
||||||
VirtioRingUninit (Dev->VirtIo, &Dev->RxRing);
|
VirtioNetUninitRing (Dev, &Dev->RxRing);
|
||||||
|
|
||||||
DeviceFailed:
|
DeviceFailed:
|
||||||
//
|
//
|
||||||
|
@ -51,3 +51,19 @@ VirtioNetShutdownTx (
|
|||||||
{
|
{
|
||||||
FreePool (Dev->TxFreeStack);
|
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);
|
||||||
|
}
|
||||||
|
@ -67,8 +67,8 @@ VirtioNetShutdown (
|
|||||||
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);
|
Dev->VirtIo->SetDeviceStatus (Dev->VirtIo, 0);
|
||||||
VirtioNetShutdownRx (Dev);
|
VirtioNetShutdownRx (Dev);
|
||||||
VirtioNetShutdownTx (Dev);
|
VirtioNetShutdownTx (Dev);
|
||||||
VirtioRingUninit (Dev->VirtIo, &Dev->TxRing);
|
VirtioNetUninitRing (Dev, &Dev->TxRing);
|
||||||
VirtioRingUninit (Dev->VirtIo, &Dev->RxRing);
|
VirtioNetUninitRing (Dev, &Dev->RxRing);
|
||||||
|
|
||||||
Dev->Snm.State = EfiSimpleNetworkStarted;
|
Dev->Snm.State = EfiSimpleNetworkStarted;
|
||||||
Status = EFI_SUCCESS;
|
Status = EFI_SUCCESS;
|
||||||
|
@ -70,8 +70,9 @@ faithfully indented) that implement the transition.
|
|||||||
VirtioNetInitialize | | VirtioNetShutdown
|
VirtioNetInitialize | | VirtioNetShutdown
|
||||||
VirtioNetInitRing {Rx, Tx} | | VirtioNetShutdownRx [SnpSharedHelpers.c]
|
VirtioNetInitRing {Rx, Tx} | | VirtioNetShutdownRx [SnpSharedHelpers.c]
|
||||||
VirtioRingInit | | VirtioNetShutdownTx [SnpSharedHelpers.c]
|
VirtioRingInit | | VirtioNetShutdownTx [SnpSharedHelpers.c]
|
||||||
VirtioNetInitTx | | VirtioRingUninit {Tx, Rx}
|
VirtioNetInitTx | | VirtioNetUninitRing [SnpSharedHelpers.c]
|
||||||
VirtioNetInitRx | |
|
VirtioNetInitRx | | {Tx, Rx}
|
||||||
|
| | VirtioRingUninit
|
||||||
v |
|
v |
|
||||||
+-----------------------------+
|
+-----------------------------+
|
||||||
| EfiSimpleNetworkInitialized |
|
| EfiSimpleNetworkInitialized |
|
||||||
|
@ -263,6 +263,13 @@ VirtioNetShutdownTx (
|
|||||||
IN OUT VNET_DEV *Dev
|
IN OUT VNET_DEV *Dev
|
||||||
);
|
);
|
||||||
|
|
||||||
|
VOID
|
||||||
|
EFIAPI
|
||||||
|
VirtioNetUninitRing (
|
||||||
|
IN OUT VNET_DEV *Dev,
|
||||||
|
IN OUT VRING *Ring
|
||||||
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
// event callbacks
|
// event callbacks
|
||||||
//
|
//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user