From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id F2A051B3A7; Thu, 11 Oct 2018 19:14:10 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Oct 2018 10:14:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,369,1534834800"; d="scan'208";a="98378787" Received: from sivswdev01.ir.intel.com (HELO localhost.localdomain) ([10.237.217.45]) by fmsmga001.fm.intel.com with ESMTP; 11 Oct 2018 10:14:08 -0700 From: Fiona Trahe To: dev@dpdk.org Cc: akhil.goyal@nxp.com, stable@dpdk.org, tomaszx.jozwiak@intel.com, tomaszx.cel@intel.com, Fiona Trahe Date: Thu, 11 Oct 2018 18:14:05 +0100 Message-Id: <1539278045-28391-1-git-send-email-fiona.trahe@intel.com> X-Mailer: git-send-email 1.7.0.7 In-Reply-To: <1538428285-14899-1-git-send-email-fiona.trahe@intel.com> References: <1538428285-14899-1-git-send-email-fiona.trahe@intel.com> Subject: [dpdk-dev] [PATCH v3] drivers/qat: fix failure to create PMD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Oct 2018 17:14:11 -0000 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 --- v3 changes: - moved checks up a layer to the probe fn as more appropriate place. v2 changes: - clarified documentation drivers/common/qat/qat_device.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/drivers/common/qat/qat_device.c b/drivers/common/qat/qat_device.c index b158fb9..6e64e22 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) -- 2.7.4