From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH v4 9/9] ethdev: use embedded rte_device to detach driver Date: Wed, 21 Jun 2017 16:33:16 +0200 Message-ID: <10054764.rOKzhrIDPz@xps> References: <03c66edf68830f0a2172692e4aa994551b610df8.1497999601.git.gaetan.rivet@6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org, Jan Blunck To: Gaetan Rivet Return-path: Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id 841A13256 for ; Wed, 21 Jun 2017 16:33:17 +0200 (CEST) In-Reply-To: <03c66edf68830f0a2172692e4aa994551b610df8.1497999601.git.gaetan.rivet@6wind.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" 21/06/2017 01:29, Gaetan Rivet: > --- a/lib/librte_ether/rte_ethdev.c > +++ b/lib/librte_ether/rte_ethdev.c > @@ -354,26 +354,14 @@ rte_eth_dev_get_port_by_name(const char *name, uint8_t *port_id) > static int > rte_eth_dev_is_detachable(uint8_t port_id) > { > - uint32_t dev_flags; > + struct rte_eth_dev *dev; > > RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL); > > - switch (rte_eth_devices[port_id].data->kdrv) { > - case RTE_KDRV_IGB_UIO: > - case RTE_KDRV_UIO_GENERIC: > - case RTE_KDRV_NIC_UIO: > - case RTE_KDRV_NONE: > - case RTE_KDRV_VFIO: > - break; > - default: > - return -ENOTSUP; > - } > - dev_flags = rte_eth_devices[port_id].data->dev_flags; > - if ((dev_flags & RTE_ETH_DEV_DETACHABLE) && > - (!(dev_flags & RTE_ETH_DEV_BONDED_SLAVE))) > + dev = &rte_eth_devices[port_id]; > + if (dev->data->dev_flags & RTE_ETH_DEV_BONDED_SLAVE) > return 0; > - else > - return 1; > + return !!dev->device->devargs->bus->unplug; > } The changes in rte_eth_dev_is_detachable() deserves a separate commit. Are you removing RTE_ETH_DEV_DETACHABLE flag? I think this change cannot be done before implementing unplug in PCI.