From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 71C2EA057B; Wed, 1 Apr 2020 09:16:06 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 57B301BEB1; Wed, 1 Apr 2020 09:16:06 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id B7CCE1BEB1 for ; Wed, 1 Apr 2020 09:16:04 +0200 (CEST) IronPort-SDR: 5ExNaAvE5zH/Aq47VT4T8XtuAR7RnpuM24LASHO/OPcP5W3lUdFVkXLSFbqO9DYW+gb8muX8aq 7fpD/MnCS9Kg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Apr 2020 00:16:03 -0700 IronPort-SDR: Bnd42wtau2/Hap5xhlDUuyTr1itoQS36nRIyu4Qcq5tQoYulAzGEMBvqDVBbElx/9eYI0ARgN4 rmzejuadZtyA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,330,1580803200"; d="scan'208";a="359767273" Received: from intel.sh.intel.com ([10.239.255.137]) by fmsmga001.fm.intel.com with ESMTP; 01 Apr 2020 00:16:01 -0700 From: Lunyuan Cui To: dev@dpdk.org Cc: Qiming Yang , Jingjing Wu , Lunyuan Cui Date: Wed, 1 Apr 2020 07:12:14 +0000 Message-Id: <20200401071214.109641-1-lunyuanx.cui@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200325024758.132253-1-lunyuanx.cui@intel.com> References: <20200325024758.132253-1-lunyuanx.cui@intel.com> Subject: [dpdk-dev] [PATCH v2] net/iavf: enable port reset X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch is intended to add iavf_dev_reset ops, enable iavf to support "port reset all". Signed-off-by: Lunyuan Cui Acked-by: Jingjing Wu --- drivers/net/iavf/iavf_ethdev.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c index 7a8bec9c9..382530a43 100644 --- a/drivers/net/iavf/iavf_ethdev.c +++ b/drivers/net/iavf/iavf_ethdev.c @@ -32,6 +32,7 @@ static int iavf_dev_configure(struct rte_eth_dev *dev); static int iavf_dev_start(struct rte_eth_dev *dev); static void iavf_dev_stop(struct rte_eth_dev *dev); static void iavf_dev_close(struct rte_eth_dev *dev); +static int iavf_dev_reset(struct rte_eth_dev *dev); static int iavf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info); static const uint32_t *iavf_dev_supported_ptypes_get(struct rte_eth_dev *dev); @@ -91,6 +92,7 @@ static const struct eth_dev_ops iavf_eth_dev_ops = { .dev_start = iavf_dev_start, .dev_stop = iavf_dev_stop, .dev_close = iavf_dev_close, + .dev_reset = iavf_dev_reset, .dev_infos_get = iavf_dev_info_get, .dev_supported_ptypes_get = iavf_dev_supported_ptypes_get, .link_update = iavf_dev_link_update, @@ -1419,6 +1421,21 @@ iavf_dev_uninit(struct rte_eth_dev *dev) return 0; } +/* + * Reset VF device only to re-initialize resources in PMD layer + */ +static int +iavf_dev_reset(struct rte_eth_dev *dev) +{ + int ret; + + ret = iavf_dev_uninit(dev); + if (ret) + return ret; + + return iavf_dev_init(dev); +} + static int iavf_dcf_cap_check_handler(__rte_unused const char *key, const char *value, __rte_unused void *opaque) -- 2.17.1