Fix null pointer check in release Rx/Tx queue APIs.

Reported by Coverity scan:
1423923 Dereference before null check
1423924 Dereference before null check

Fixes: 9a30013b9884 ("net/liquidio: add API to release Rx queue")
Fixes: cf6bfcbea178 ("net/liquidio: add API to release Tx queue")

Signed-off-by: Shijith Thotton <shijith.thot...@caviumnetworks.com>
---
 drivers/net/liquidio/lio_ethdev.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/drivers/net/liquidio/lio_ethdev.c 
b/drivers/net/liquidio/lio_ethdev.c
index df91659..a65c749 100644
--- a/drivers/net/liquidio/lio_ethdev.c
+++ b/drivers/net/liquidio/lio_ethdev.c
@@ -1155,14 +1155,13 @@ struct rte_lio_xstats_name_off {
 lio_dev_rx_queue_release(void *rxq)
 {
        struct lio_droq *droq = rxq;
-       struct lio_device *lio_dev = droq->lio_dev;
        int oq_no;
 
-       /* Run time queue deletion not supported */
-       if (lio_dev->port_configured)
-               return;
+       if (droq) {
+               /* Run time queue deletion not supported */
+               if (droq->lio_dev->port_configured)
+                       return;
 
-       if (droq != NULL) {
                oq_no = droq->q_no;
                lio_delete_droq_queue(droq->lio_dev, oq_no);
        }
@@ -1250,14 +1249,14 @@ struct rte_lio_xstats_name_off {
 lio_dev_tx_queue_release(void *txq)
 {
        struct lio_instr_queue *tq = txq;
-       struct lio_device *lio_dev = tq->lio_dev;
        uint32_t fw_mapped_iq_no;
 
-       /* Run time queue deletion not supported */
-       if (lio_dev->port_configured)
-               return;
 
-       if (tq != NULL) {
+       if (tq) {
+               /* Run time queue deletion not supported */
+               if (tq->lio_dev->port_configured)
+                       return;
+
                /* Free sg_list */
                lio_delete_sglist(tq);
 
-- 
1.8.3.1

Reply via email to