From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f67.google.com (mail-pa0-f67.google.com [209.85.220.67]) by dpdk.org (Postfix) with ESMTP id 9D9B8C618 for ; Sat, 25 Jun 2016 02:45:37 +0200 (CEST) Received: by mail-pa0-f67.google.com with SMTP id us13so10180370pab.1 for ; Fri, 24 Jun 2016 17:45:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=vU8Kw1QsLRvQd73epaIci0fZYQhYCUbvx0RXiRlq92o=; b=FpN2w7DkPWgQ4FO4DAv00HjO9uwHaZZlWHWsbPcEbrss3zqzryaip0c6+sHKIr9ixd h8Na+GufFEfxXz9a8gitvzxFT02qg/TVpn+uVxekIoCi8ZgomaZ2WV7m1lc2hRrrk593 sXkstm9sMdsUr3P3bxVg0oFk79WFKXRQDifKGTXdsLO87XacMzwYtdiznJcK4pvXfGK/ dH1C6Hj5m/INx7mAZsNcU6zLw6aIQ+9W5TTgPuTHWV3rX2yR4q+4ufiVKEbAmTr0dJjj hStLKs1pB2wXQVb4GcIxFTU8UjYs9FmzHbr1kYHlsJXhD68NwtapEeWyfTupG+rdH2tw NH/Q== 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; bh=vU8Kw1QsLRvQd73epaIci0fZYQhYCUbvx0RXiRlq92o=; b=cQnXZ6B5jV/Sz+7/hZih/0b+qFEBRgLQKYACn/vKkpKiFcWnmcHcuyAAtyt36YeGKW 2bzyNbydFP8He4hIPS+ClPCPAf0YETFTa9VcyxuWkIcnHf9QIweQt0bPTQkytNbwoQKt aRu2HbDZgdy1I9XtX3cOU9qYEj+nt74T8PS0P8vsiAixXv7fUV/cxm/vEfyRHLjLFfpJ yxdhN/5bCDDyT1Pxn6JvcTgjJdt4XQkWZ0LW6uTVmBRiBwnPO8bNEOugVF/0QKEjAoQq +hehFwDuzIRzWZ30HdHvM+KPtDCWmpemqV6Xce3JqQheOzoz1xINS6T2+FgI/ZW8Qg+7 tPNQ== X-Gm-Message-State: ALyK8tJZiavbSZ6SVIPB+R5Okevd6JH7TjTGBQUIsR/sAzEm2H9tsi6a29ZPWBNFMVzGaw== X-Received: by 10.66.237.104 with SMTP id vb8mr12425597pac.24.1466815536755; Fri, 24 Jun 2016 17:45:36 -0700 (PDT) Received: from localhost.localdomain ([12.218.209.105]) by smtp.gmail.com with ESMTPSA id i3sm2818135pfk.30.2016.06.24.17.45.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 24 Jun 2016 17:45:36 -0700 (PDT) From: Rugang Chen To: dev@dpdk.org Cc: Rugang Chen Date: Fri, 24 Jun 2016 17:45:28 -0700 Message-Id: <1466815528-27163-1-git-send-email-rugangchen2011@gmail.com> X-Mailer: git-send-email 2.1.4 Subject: [dpdk-dev] [PATCH] pci:don't insert an unbound device to pci_device_list in pci_scan_one 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: Sat, 25 Jun 2016 00:45:38 -0000 If a device isn't bound by any uio driver (vfio-pci, igb_uio, uio_pci_generic) and is expected to owned by a kernel space driver, here it's still inserted to pci_device_list. This may cause application based on dpdk fetch the device by accident and then the device is hanlded by dpdk. For safe, skip it from pci_device_list as if it's unbound, dpdk won't want to use it. Signed-off-by: Rugang Chen --- lib/librte_eal/linuxapp/eal/eal_pci.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c index f9c3efd..f63febc 100644 --- a/lib/librte_eal/linuxapp/eal/eal_pci.c +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c @@ -388,6 +388,12 @@ pci_scan_one(const char *dirname, uint16_t domain, uint8_t bus, } else dev->kdrv = RTE_KDRV_NONE; + /* Ignore device that isn't bound with any uio driver, then application won't + * fetch it from pci_device_list by accident and then dpdk handles it. Kernel + * space driver maybe wants to own it. + */ + if (dev->kdrv == RTE_KDRV_NONE) + return 0; /* device is valid, add in list (sorted) */ if (TAILQ_EMPTY(&pci_device_list)) { TAILQ_INSERT_TAIL(&pci_device_list, dev, next); -- 2.1.4