From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f44.google.com (mail-pa0-f44.google.com [209.85.220.44]) by dpdk.org (Postfix) with ESMTP id 9EA2B8011 for ; Thu, 20 Nov 2014 09:57:33 +0100 (CET) Received: by mail-pa0-f44.google.com with SMTP id et14so2169677pad.31 for ; Thu, 20 Nov 2014 01:08:02 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=UatQ3GD4PTEdlnkyBPB/a5r2kS9fjyq/6/3/UXcnCNw=; b=hWYA+9npbK5GPIgydOBTwplck/QlaMF9iUOhNExCg15C1E0nZjXByDq8qOhiPmG7ai ZlUj4uvWy6oeepfwOsOYJd/Uu2UzmyGIZZ9w8u1jJs3brDdhZJvl0PuLuTjS8Ke+HF2D J8ipj+hahsLBCzuhhl4cEF+wGgfk8lB7wFFQi8iuT3oRJjOwERRMrrrJjQf6X9Bqb9mJ Jwy2Wqkz1sR8pf2yCX8YjByoEdrLyOUrzDloQLGUAOuNlN5b2WPg2IgiXzxF7cjfjklS UksZMQfroL5NX/sye2c+wY7FpccOncpb3jlLnNzuQNCuK0qclbADQHPI76vp3HX0dtOx QcXw== X-Gm-Message-State: ALoCoQmJ+D1hjKp1lZ6+2hBHxvfNI3RxLfFBsTo0BlFMiPBQStiR0UZhuUOULP6CLr3IxYgt4pfM X-Received: by 10.66.66.76 with SMTP id d12mr34262572pat.111.1416474482421; Thu, 20 Nov 2014 01:08:02 -0800 (PST) Received: from localhost.localdomain (napt.igel.co.jp. [219.106.231.132]) by mx.google.com with ESMTPSA id a6sm1432407pbu.64.2014.11.20.01.07.59 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 20 Nov 2014 01:08:01 -0800 (PST) From: Tetsuya Mukawa To: dev@dpdk.org Date: Thu, 20 Nov 2014 18:06:32 +0900 Message-Id: <1416474399-16851-19-git-send-email-mukawa@igel.co.jp> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1416474399-16851-1-git-send-email-mukawa@igel.co.jp> References: <1414572576-21371-1-git-send-email-mukawa@igel.co.jp> <1416474399-16851-1-git-send-email-mukawa@igel.co.jp> Cc: nakajima.yoshihiro@lab.ntt.co.jp, menrigh@brocade.com, masutani.hitoshi@lab.ntt.co.jp Subject: [dpdk-dev] [PATCH 18/25] eal/pci: Prevent double registrations for pci_device_list 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: Thu, 20 Nov 2014 08:57:34 -0000 The patch fixes pci_scan_one() not to register same pci devices twice. Signed-off-by: Tetsuya Mukawa --- lib/librte_eal/linuxapp/eal/eal_pci.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c index d7293c7..85cdd27 100644 --- a/lib/librte_eal/linuxapp/eal/eal_pci.c +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c @@ -292,14 +292,17 @@ pci_scan_one(const char *dirname, uint16_t domain, uint8_t bus, } else { struct rte_pci_device *dev2 = NULL; + int ret; TAILQ_FOREACH(dev2, &pci_device_list, next) { - if (eal_compare_pci_addr(&dev->addr, &dev2->addr) != 0) + ret = eal_compare_pci_addr(&dev->addr, &dev2->addr); + if (ret > 0) continue; - else { + else if (ret < 0) { TAILQ_INSERT_BEFORE(dev2, dev, next); return 0; - } + } else /* already registered */ + return 0; } TAILQ_INSERT_TAIL(&pci_device_list, dev, next); } -- 1.9.1