diff options
Diffstat (limited to 'drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c')
-rw-r--r-- | drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c | 18 |
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 |