From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH v4 2/4] drivers/bus: move driver assignment to end of probing Date: Fri, 12 Oct 2018 17:50:50 +0200 Message-ID: <2068453.Uvx6fECcdx@xps> References: <20180907230958.21402-1-thomas@monjalon.net> <20181011210251.7705-3-thomas@monjalon.net> <14058760-a35c-c991-74c1-8a86b39df5b0@solarflare.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org, gaetan.rivet@6wind.com, ophirmu@mellanox.com, qi.z.zhang@intel.com, ferruh.yigit@intel.com, Jan Remes , Shahaf Shuler , Yongseok Koh To: Andrew Rybchenko Return-path: Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id C27651B9CE for ; Fri, 12 Oct 2018 17:50:54 +0200 (CEST) In-Reply-To: <14058760-a35c-c991-74c1-8a86b39df5b0@solarflare.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 12/10/2018 09:44, Andrew Rybchenko: > Hi, Thomas, > > On 10/12/18 12:02 AM, Thomas Monjalon wrote: > > The PCI mapping requires to know the PCI driver to use, > > even before the probing is done. That's why the PCI driver is > > referenced early inside the PCI device structure. See > > commit 1d20a073fa5e ("bus/pci: reference driver structure before mapping") > > > > However the rte_driver does not need to be referenced in rte_device > > before the device probing is done. > > By moving back this assignment at the end of the device probing, > > it becomes possible to make clear the status of a rte_device. > > > > Signed-off-by: Thomas Monjalon > > Reviewed-by: Andrew Rybchenko > > Have you seen driver->name usage in drivers/net/szedata2/rte_eth_szedata2.c > rte_szedata2_eth_dev_init() which is used from probe? > > It looks like drivers/net/mlx5/mlx5.c > mlx5_pci_probe()->mlx5_dev_spawn()->mlx5_dev_to_port_id() goes > to device->driver. Is the code OK with the move? This access in mlx5 looks useless. It is comparing driver names while already comparing rte_device pointers. If 2 devices are the same, they will have the same driver... I will remove it.