summaryrefslogtreecommitdiff
path: root/drivers/common
diff options
context:
space:
mode:
authorFiona Trahe <fiona.trahe@intel.com>2018-10-11 18:14:05 +0100
committerAkhil Goyal <akhil.goyal@nxp.com>2018-10-17 12:23:40 +0200
commit8451f04d0239002c29901e88c278cd83e06f46b1 (patch)
tree7209616c6c715c582175d45a6ea138e8f76d4f7f /drivers/common
parent3f1d382ca3b73623dfa5c3d44bd4251b67d92a91 (diff)
downloaddpdk-next-eventdev-8451f04d0239002c29901e88c278cd83e06f46b1.zip
dpdk-next-eventdev-8451f04d0239002c29901e88c278cd83e06f46b1.tar.gz
dpdk-next-eventdev-8451f04d0239002c29901e88c278cd83e06f46b1.tar.xz
common/qat: fix failure to create PMD
If QAT crypto pmd failed to be created due to reaching MAX cryptodevs it prevented QAT comp PMD being created. And vice versa. Change to warning in these cases and allow the other PMD to be created. Fixes: c0c90bc4cade ("compress/qat: add create and destroy functions") Cc: stable@dpdk.org Signed-off-by: Fiona Trahe <fiona.trahe@intel.com> Acked-by: Tomasz Cel <tomaszx.cel@intel.com>
Diffstat (limited to 'drivers/common')
-rw-r--r--drivers/common/qat/qat_device.c33
1 files changed, 22 insertions, 11 deletions
diff --git a/drivers/common/qat/qat_device.c b/drivers/common/qat/qat_device.c
index b158fb9..8d4df92 100644
--- a/drivers/common/qat/qat_device.c
+++ b/drivers/common/qat/qat_device.c
@@ -196,6 +196,7 @@ static int qat_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
struct rte_pci_device *pci_dev)
{
int ret = 0;
+ int num_pmds_created = 0;
struct qat_pci_device *qat_pci_dev;
QAT_LOG(DEBUG, "Found QAT device at %02x:%02x.%x",
@@ -208,23 +209,33 @@ static int qat_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
return -ENODEV;
ret = qat_sym_dev_create(qat_pci_dev);
- if (ret != 0)
- goto error_out;
+ if (ret == 0)
+ num_pmds_created++;
+ else
+ QAT_LOG(WARNING,
+ "Failed to create QAT SYM PMD on device %s",
+ qat_pci_dev->name);
ret = qat_comp_dev_create(qat_pci_dev);
- if (ret != 0)
- goto error_out;
+ if (ret == 0)
+ num_pmds_created++;
+ else
+ QAT_LOG(WARNING,
+ "Failed to create QAT COMP PMD on device %s",
+ qat_pci_dev->name);
ret = qat_asym_dev_create(qat_pci_dev);
- if (ret != 0)
- goto error_out;
+ if (ret == 0)
+ num_pmds_created++;
+ else
+ QAT_LOG(WARNING,
+ "Failed to create QAT ASYM PMD on device %s",
+ qat_pci_dev->name);
- return 0;
-
-error_out:
- qat_pci_dev_destroy(qat_pci_dev, pci_dev);
- return ret;
+ if (num_pmds_created == 0)
+ qat_pci_dev_destroy(qat_pci_dev, pci_dev);
+ return 0;
}
static int qat_pci_remove(struct rte_pci_device *pci_dev)