From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH v6 3/3] net/tap: allow secondary process to access primary device queues Date: Thu, 11 Oct 2018 17:32:31 +0100 Message-ID: References: <1539182356-15496-1-git-send-email-rasland@mellanox.com> <1539182356-15496-3-git-send-email-rasland@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: Thomas Monjalon , "dev@dpdk.org" , Shahaf Shuler , Ori Kam To: Raslan Darawsheh , "keith.wiles@intel.com" Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 9EFF41B581 for ; Thu, 11 Oct 2018 18:32:34 +0200 (CEST) In-Reply-To: <1539182356-15496-3-git-send-email-rasland@mellanox.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 10/10/2018 3:39 PM, Raslan Darawsheh wrote: > @@ -2082,6 +2214,14 @@ rte_pmd_tap_probe(struct rte_vdev_device *dev) > TAP_LOG(NOTICE, "Initializing pmd_tap for %s as %s", > name, tap_name); > > + /* Register IPC feed callback */ > + ret = rte_mp_action_register(TAP_MP_KEY, tap_mp_sync_queues); > + if (ret < 0 && rte_errno != EEXIST && tap_devices_count) { > + TAP_LOG(ERR, "%s: Failed to register IPC callback: %s", > + tuntap_name, strerror(rte_errno)); > + goto leave; > + } > + tap_devices_count++; > ret = eth_dev_tap_create(dev, tap_name, remote_iface, &user_mac, > ETH_TUNTAP_TYPE_TAP); Why not rely on "tap_devices_count" but call rte_mp_action_register() every time and try to figure out status from ret? if (tap_devices_count == 0) { ret = rte_mp_action_register(TAP_MP_KEY, tap_mp_sync_queues); if (ret < 0) { TAP_LOG(); goto leave; } } tap_devices_count++;