aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c')
-rw-r--r--drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c b/drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c
index c68d9400..37b7991f 100644
--- a/drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c
+++ b/drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c
@@ -16,7 +16,9 @@
#include <assert.h>
#include <stdio.h>
+#if defined(RTE_BACKTRACE)
#include <execinfo.h>
+#endif
#include <stdlib.h>
#include <unistd.h>
#include <stdint.h>
@@ -788,17 +790,17 @@ nfp6000_init(struct nfp_cpp *cpp, struct rte_pci_device *dev)
if (cpp->driver_lock_needed) {
ret = nfp_acquire_process_lock(desc);
if (ret)
- return -1;
+ goto error;
}
if (nfp6000_set_model(dev, cpp) < 0)
- return -1;
+ goto error;
if (nfp6000_set_interface(dev, cpp) < 0)
- return -1;
+ goto error;
if (nfp6000_set_serial(dev, cpp) < 0)
- return -1;
+ goto error;
if (nfp6000_set_barsz(dev, desc) < 0)
- return -1;
+ goto error;
desc->cfg = (char *)dev->mem_resource[0].addr;
@@ -809,7 +811,11 @@ nfp6000_init(struct nfp_cpp *cpp, struct rte_pci_device *dev)
model = __nfp_cpp_model_autodetect(cpp);
nfp_cpp_model_set(cpp, model);
- return ret;
+ return 0;
+
+error:
+ free(desc);
+ return -1;
}
static void