bus/fslmc: fix dpio close
authorRohit Raj <rohit.raj@nxp.com>
Tue, 28 Jul 2020 16:24:59 +0000 (21:54 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 6 Oct 2020 08:58:15 +0000 (10:58 +0200)
The current state of the DPIO object should be checked
before trying to close/disable the object.

Fixes: 293c0ca94c36 ("bus/fslmc: support memory backed portals with QBMAN 5.0")
Cc: stable@dpdk.org
Signed-off-by: Rohit Raj <rohit.raj@nxp.com>
Acked-by: Sachin Saxena <sachin.saxena@oss.nxp.com>
drivers/bus/fslmc/portal/dpaa2_hw_dpio.c

index 97be761..b0055b1 100644 (file)
@@ -528,8 +528,13 @@ dpaa2_create_dpio_device(int vdev_fd,
 
 err:
        if (dpio_dev->dpio) {
-               dpio_disable(dpio_dev->dpio, CMD_PRI_LOW, dpio_dev->token);
-               dpio_close(dpio_dev->dpio, CMD_PRI_LOW,  dpio_dev->token);
+               if (dpio_dev->token) {
+                       dpio_disable(dpio_dev->dpio, CMD_PRI_LOW,
+                                    dpio_dev->token);
+                       dpio_close(dpio_dev->dpio, CMD_PRI_LOW,
+                                  dpio_dev->token);
+               }
+
                rte_free(dpio_dev->eqresp);
                rte_free(dpio_dev->dpio);
        }