On 09/11/17 14:16, Brijesh Singh wrote:
> Consolidate the virtio VRING resource cleanup into VirtioNetUninitRing().
> 
> Cc: Ard Biesheuvel <[email protected]>
> Cc: Jordan Justen <[email protected]>
> Cc: Tom Lendacky <[email protected]>
> Cc: Laszlo Ersek <[email protected]>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Brijesh Singh <[email protected]>
> ---
>  OvmfPkg/VirtioNetDxe/VirtioNet.h        |  7 +++++++
>  OvmfPkg/VirtioNetDxe/SnpInitialize.c    |  4 ++--
>  OvmfPkg/VirtioNetDxe/SnpSharedHelpers.c | 16 ++++++++++++++++
>  OvmfPkg/VirtioNetDxe/SnpShutdown.c      |  4 ++--
>  OvmfPkg/VirtioNetDxe/TechNotes.txt      |  5 +++--
>  5 files changed, 30 insertions(+), 6 deletions(-)
> 
> diff --git a/OvmfPkg/VirtioNetDxe/VirtioNet.h 
> b/OvmfPkg/VirtioNetDxe/VirtioNet.h
> index 710859bc6115..87a0f06e01a4 100644
> --- a/OvmfPkg/VirtioNetDxe/VirtioNet.h
> +++ b/OvmfPkg/VirtioNetDxe/VirtioNet.h
> @@ -263,6 +263,13 @@ VirtioNetShutdownTx (
>    IN OUT VNET_DEV *Dev
>    );
>  
> +VOID
> +EFIAPI
> +VirtioNetUninitRing (
> +  IN OUT VNET_DEV *Dev,
> +  IN OUT VRING    *Ring
> +  );
> +
>  //
>  // event callbacks
>  //
> diff --git a/OvmfPkg/VirtioNetDxe/SnpInitialize.c 
> b/OvmfPkg/VirtioNetDxe/SnpInitialize.c
> index 0ecfe044a977..637c978709fd 100644
> --- a/OvmfPkg/VirtioNetDxe/SnpInitialize.c
> +++ b/OvmfPkg/VirtioNetDxe/SnpInitialize.c
> @@ -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:
>    //
> diff --git a/OvmfPkg/VirtioNetDxe/SnpSharedHelpers.c 
> b/OvmfPkg/VirtioNetDxe/SnpSharedHelpers.c
> index 9fedb72fdbd4..5b75eabc7a6b 100644
> --- a/OvmfPkg/VirtioNetDxe/SnpSharedHelpers.c
> +++ b/OvmfPkg/VirtioNetDxe/SnpSharedHelpers.c
> @@ -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);
> +}
> diff --git a/OvmfPkg/VirtioNetDxe/SnpShutdown.c 
> b/OvmfPkg/VirtioNetDxe/SnpShutdown.c
> index 5e84191fbbdd..432e0691d457 100644
> --- a/OvmfPkg/VirtioNetDxe/SnpShutdown.c
> +++ b/OvmfPkg/VirtioNetDxe/SnpShutdown.c
> @@ -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;
> diff --git a/OvmfPkg/VirtioNetDxe/TechNotes.txt 
> b/OvmfPkg/VirtioNetDxe/TechNotes.txt
> index 9c1dfe6a773e..86b91f561495 100644
> --- a/OvmfPkg/VirtioNetDxe/TechNotes.txt
> +++ b/OvmfPkg/VirtioNetDxe/TechNotes.txt
> @@ -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 |
> 

Reviewed-by: Laszlo Ersek <[email protected]>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to