]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg/VirtioNetDxe: add helper VirtioNetUninitRing()
authorBrijesh Singh <brijesh.singh@amd.com>
Thu, 14 Sep 2017 21:22:40 +0000 (16:22 -0500)
committerLaszlo Ersek <lersek@redhat.com>
Thu, 14 Sep 2017 21:53:46 +0000 (23:53 +0200)
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>
OvmfPkg/VirtioNetDxe/SnpInitialize.c
OvmfPkg/VirtioNetDxe/SnpSharedHelpers.c
OvmfPkg/VirtioNetDxe/SnpShutdown.c
OvmfPkg/VirtioNetDxe/TechNotes.txt
OvmfPkg/VirtioNetDxe/VirtioNet.h

index 0ecfe044a97735754eddd1e1a6025e6d24270f5f..637c978709fd90f12bb40a9dd4e94982ae27ad82 100644 (file)
@@ -510,10 +510,10 @@ AbortDevice:
   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
index 9fedb72fdbd4d4aaa23fedf0dfced379347aa9cb..5b75eabc7a6bdad248baf8026d5474b1a01a34e3 100644 (file)
@@ -51,3 +51,19 @@ VirtioNetShutdownTx (
 {\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
index 5e84191fbbdd7003cc4b3bf5d1948d53627da04e..432e0691d4571a84650e3208c725c4280319bf8d 100644 (file)
@@ -67,8 +67,8 @@ VirtioNetShutdown (
   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
index 9c1dfe6a773ebedb0864c12e9620ddbccee47dba..86b91f5614950f83b3e13c1462a269b9ea8fe1bc 100644 (file)
@@ -70,8 +70,9 @@ faithfully indented) that implement the transition.
   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
index 710859bc61159fee360494eb09a03d15baa378b1..87a0f06e01a42d424ae99eba3fc0adfc0fec9cbf 100644 (file)
@@ -263,6 +263,13 @@ VirtioNetShutdownTx (
   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