From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id E7C532E41 for ; Tue, 25 Oct 2016 23:50:46 +0200 (CEST) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga105.jf.intel.com with ESMTP; 25 Oct 2016 14:50:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,399,1473145200"; d="scan'208";a="23582967" Received: from bwalker-desk.ch.intel.com ([143.182.137.83]) by fmsmga006.fm.intel.com with ESMTP; 25 Oct 2016 14:50:45 -0700 From: Ben Walker To: dev@dpdk.org Date: Tue, 25 Oct 2016 14:50:40 -0700 Message-Id: <1477432240-20406-1-git-send-email-benjamin.walker@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dpdk-dev] [PATCH] pci: Don't call probe callback if driver already loaded. X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Oct 2016 21:50:47 -0000 If the user asks to probe multiple times, the probe callback should only be called on devices that don't have a driver already loaded. This is useful if a driver is registered after the execution of a program has started and the list of devices needs to be re-scanned. Signed-off-by: Ben Walker --- lib/librte_eal/common/eal_common_pci.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c index 638cd86..971ad20 100644 --- a/lib/librte_eal/common/eal_common_pci.c +++ b/lib/librte_eal/common/eal_common_pci.c @@ -289,6 +289,10 @@ pci_probe_all_drivers(struct rte_pci_device *dev) if (dev == NULL) return -1; + /* Check if a driver is already loaded */ + if (dev->driver != NULL) + return 0; + TAILQ_FOREACH(dr, &pci_driver_list, next) { rc = rte_eal_pci_probe_one_driver(dr, dev); if (rc < 0) -- 2.7.4