internals->data will never be NULL, so the check is not necessary.

Fixes: d082c0395bf6 ("ring: fix memory leak when detaching")
Coverity issue: 137873

Signed-off-by: Mauricio Vasquez B <mauricio.vasquez at polito.it>
---
 drivers/net/ring/rte_eth_ring.c | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 6d2a8c1..5ca00ed 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -599,17 +599,15 @@ rte_pmd_ring_remove(const char *name)

        eth_dev_stop(eth_dev);

-       if (eth_dev->data) {
-               internals = eth_dev->data->dev_private;
-               if (internals->action == DEV_CREATE) {
-                       /*
-                        * it is only necessary to delete the rings in 
rx_queues because
-                        * they are the same used in tx_queues
-                        */
-                       for (i = 0; i < eth_dev->data->nb_rx_queues; i++) {
-                               r = eth_dev->data->rx_queues[i];
-                               rte_ring_free(r->rng);
-                       }
+       internals = eth_dev->data->dev_private;
+       if (internals->action == DEV_CREATE) {
+               /*
+                * it is only necessary to delete the rings in rx_queues because
+                * they are the same used in tx_queues
+                */
+               for (i = 0; i < eth_dev->data->nb_rx_queues; i++) {
+                       r = eth_dev->data->rx_queues[i];
+                       rte_ring_free(r->rng);
                }

                rte_free(eth_dev->data->rx_queues);
-- 
1.9.1

Reply via email to