From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 03FAA427E2; Mon, 20 Mar 2023 14:00:40 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E75B840A7F; Mon, 20 Mar 2023 14:00:39 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 774E7406BC; Mon, 20 Mar 2023 14:00:37 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679317237; x=1710853237; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=EsKaPvOH+XxvngAlxPZBo0Z7Y1hobvHNHDkn35GNNoI=; b=O7otRfz1+OrNdBXBzutkN8Y7zrayGM4EmHogQuLiLoqk28XxaBmp7d60 Wtukqulab/u1iluKxQs3EIm5euLGvMo5yW9F1O7uY/8ZdH5l98U2JFR9e I0SlUbIvtcNJYuUEfuZUTQAMq8WaM+k6M1kXsDdDEdbdUiVT2MIu1v0tZ YN5Q9Kbava9T/TQFQRUhVGfp9bj8LP7EjskWTrYoq8nqa181CwxZ/hfkY XyFJnxdcWpaRgyzFrzEWgEgHII3eVTm+KxSqkOPLIX4PDRgFYqzMKfqNa NkPd1sXd3RJ1UjSJl2cGBosZf46S+4swcn5FJGjqqMs7+x2OoKrEbapc+ g==; X-IronPort-AV: E=McAfee;i="6600,9927,10654"; a="366370838" X-IronPort-AV: E=Sophos;i="5.98,274,1673942400"; d="scan'208";a="366370838" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Mar 2023 06:00:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10654"; a="855275342" X-IronPort-AV: E=Sophos;i="5.98,274,1673942400"; d="scan'208";a="855275342" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga005.jf.intel.com with ESMTP; 20 Mar 2023 06:00:36 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Mon, 20 Mar 2023 06:00:35 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Mon, 20 Mar 2023 06:00:35 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Mon, 20 Mar 2023 06:00:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dihnrjnDtJuPDnEkjfHgTnjBh4QgZzLjBP1pJ1NeY5N8nzUKG9kVXGZHRQnbw41vwfXpS9sSM7FMBk3X6HEGFulCDp1d1ReqF9juScRiRdlTa3MDXLIXXDBLG6U+Ee2Q0PKNM0J3DzpAzQbzQLgPms7WTsuLI2h3VNXuWSBawNXQyChGfZy8pCyTSaXTdUUyCjj/YZ7Dg50g4/zcxaWbmY6t0yJLYEBx5v1efukyngNv6H7FesL3wTD/fvM+5k3qq63wJCKFB33Xib1+uucLeG8JhxdNRFc+TyW+pdG4g2OyfilTQS2eJuLTTCh8lQNH3TFIZwK7oP9nsTm9S5mcrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=k2n+uyMz8uVHo3jyukjamD7juM35xmQ17k/Yr0x9vQg=; b=bs+Tk9Sb6wX0vbkOpRSEL4xUmFrNZvONcGsy7k2PNRHE17avmH4lzmV6bnbGdOeUPiFHzIZ1XqyI4b7kTIsTMw2Bmf+SOJtw6beZOGwuirDZOYSQejLU5Zn40efCPowptLerR6OO2vh5UPJvTsOmYSscyZ+jDzk+bZIDSvCA0jqlCYpmuPZfW/N82Pb30/Wrdqkl6iE/efIVSQld5VPJsoRJUcZBT0co7l3LgUHKAzPPeyf03j0n5svlgzB/SD+Or6UHFHZdzw92sI+ZRVqmdo5JSv1csiIRjZw3YVvhYmu67mfVXI35wbShShIS3YhPhiv2q/fVKzD69nxSFjPUgw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM4PR11MB5994.namprd11.prod.outlook.com (2603:10b6:8:5d::20) by SN7PR11MB7440.namprd11.prod.outlook.com (2603:10b6:806:340::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Mon, 20 Mar 2023 13:00:30 +0000 Received: from DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::2c5d:49cd:a9b4:f764]) by DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::2c5d:49cd:a9b4:f764%7]) with mapi id 15.20.6178.037; Mon, 20 Mar 2023 13:00:33 +0000 From: "Zhang, Qi Z" To: "Xu, Rosen" , "Huang, Wei" , "dev@dpdk.org" , "thomas@monjalon.net" , "david.marchand@redhat.com" CC: "stable@dpdk.org" , "Zhang, Tianfei" Subject: RE: [PATCH v1] raw/ifpga: remove virtual device unplug operation Thread-Topic: [PATCH v1] raw/ifpga: remove virtual device unplug operation Thread-Index: AQHZWHHuhk1dI0QRtkC9QnNVU3oIrq8DQAaAgABma7CAAABNIA== Date: Mon, 20 Mar 2023 13:00:33 +0000 Message-ID: References: <20230316204445.360330-1-wei.huang@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB5994:EE_|SN7PR11MB7440:EE_ x-ms-office365-filtering-correlation-id: a3393967-a660-486c-7ff6-08db29431790 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: U7MTt7KVJN63b1TntufYR/u+YTYoJ+rVEalUTxOGIbQ3oLSYYQBXPBclQQE0ZV27h5GwxrC/7vMqIdya7oXrVQqmlMWNyfdPqc0asotjt7MxENXuRDRsRZAn/AERGdUrjHj8xXArPOEkNbMW6zcEc8gXjItmt7dz0o9Rz0M/NyA3PEeYHPmZh47BBK38saJsM7MBnM5Ws3Mal4mVYIcwcOnaWZlAd9ZBa5TALfRB4/JP3cP9pADovhxknjgoGYneNPTWuZ6b0GnYI7eRRVvecGbVKFT9sXpbHKW0JTVmlzQbBW26A4GKWHMUDhsWYmgOXagejrN2w/xguTCWi1rJas2a6mGmvGiFgSMwUpFVt3ys06nxbD3ntHlN8d4To1D4TiRwJSPkCLsk5GIdRPWUxYwbIYRhCCHFJ029Rk3FHLTRbdiDOT2th1qcMSMD/p2WblvoyRJSBnkLHvpnafJYjC8CIcDOVlwR4q9oepPb9KbTUbnI57VAf9fS7Jv3D2TbEMStjE5dBQ0P9s2iXGL1etYhymuV6mWmNrKp5kk6iDoQZCe8ePTYjc6ngSm78GRQJm56Rm9dOy0gEAbzK48LzGh33Wu0lhmikWGdOEc6gp5RYtSTrnAPgwK6BCkLZbANNhdo6hdeimIq8ca08UJsqy14bN6BAnFxD7D907trWT6x1r+0p5pnjqoszehcF4+jB90m49bOyW4wCk+cpynEpg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB5994.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(346002)(376002)(136003)(39860400002)(366004)(396003)(451199018)(83380400001)(2940100002)(38070700005)(55016003)(86362001)(38100700002)(122000001)(8676002)(82960400001)(64756008)(41300700001)(66446008)(66556008)(66476007)(52536014)(76116006)(2906002)(66946007)(8936002)(4326008)(478600001)(5660300002)(6506007)(33656002)(26005)(53546011)(71200400001)(9686003)(7696005)(186003)(316002)(54906003)(110136005)(107886003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?QxYyAV6mnXjvIwiBDuMY/ioWHJbgEp3ArZDvuORmOH48JwvHVNNV/4WY2Cs3?= =?us-ascii?Q?YgFRdQ8ZVq9/GRLgZ3zATehhYzsWl+PCLczIOsT+JQ9afQ4dWby9dKcy/wzw?= =?us-ascii?Q?kG9oBCS1z5L72G47LSEAPdkuuk77lzDuRgUzvEz66oOPgOXIBNy6Es9SR8L3?= =?us-ascii?Q?Aux2Mly/VfWkLYgbLXaDPmrLrPGKP7WCuJQQMqXHUtQh8+2sqeLSFUCupQNw?= =?us-ascii?Q?fFcedd0lHj14sCBa5pkI9F3GMz5a8NUrJOHTUDEqFnFcnm/qrM5GkdqfgXys?= =?us-ascii?Q?MvS/kX0VA0G3mVnIBdGikL83i46uzxHQcbhZtZbUZ8uKOmE/LDzoheIt4e/m?= =?us-ascii?Q?Inw2iB62bidLreL4NFkd7qm6b7tAsa0IKkMWo/JClNV0W+uRAByxfLk7f5qr?= =?us-ascii?Q?VdcGA05s8vB3F9qHq4OHpEiC0/sl0/D9TjzRAJiP8GSAB21dJOePycy7HEV3?= =?us-ascii?Q?xmymOnq5X4pnjvlCHaXgGZTYZMvrD10wtCrl1WpxzhdMPpk13ZTEYdetdYbE?= =?us-ascii?Q?YmYdeZjnPEITn6zdbFgpIj+MMIubuL7jeNAwug6LCeRd0UaxnLfab6nj/0Vm?= =?us-ascii?Q?dxwOZO6clql7xEYKbd4nezF0WSdXH9fKNyIeDlizw/3ehvrNxzCvl9l9S7NN?= =?us-ascii?Q?bOSiYvODeV0198VcYMl8GOYdtKI0hDrs4cCZxjwAJvocN0A0O0O01CSNmccE?= =?us-ascii?Q?vHjjf19kEKlkmcug2EmM0V8Qeqc4GEWfxr4eqR5Y1SaRzZgXP1RpdA0zIxLL?= =?us-ascii?Q?h1vnPspbaEi4HPTMdPbt89rPInTdKFw1OX11BX4P/5dLGIWmHXMSSjWVWfOc?= =?us-ascii?Q?9Ga4QVF9HlhjYQfezMA8b6gXeIO/toFYiLEuEDz79tw2UQxw8U59bbwmPb+D?= =?us-ascii?Q?Qf/2sFooqoleuVtzgwVNQUnrNmbc1oza2BurIEl11RUfUlS1m4YZIOG7n8KR?= =?us-ascii?Q?usepbfx7uuesPQAuFZfmF+VZJMmerBHYesUzYX0+thP4KjKQAFlrMLivbjSx?= =?us-ascii?Q?+ndUonKDiqUgj1FK06TOePyboTKy7aYwYkmVldzt8qrz4vPcDs5aUCsAACVC?= =?us-ascii?Q?3/xbYCBE+ZBS6Ks+Ibbh+MRJNo5Na4JoeygcVKO15wAasJM6mwIezHL8yC4i?= =?us-ascii?Q?b6Ck4VMJ3e36wdydPyKbsgNR/i8PB61ak+jaC3PQeTSSOE+dsqtozIyEkHT2?= =?us-ascii?Q?M/7NoI9PStc3MMMoYg4mnNd9rrDE6T4pnEqwM/5RKRVTe+Gy7/8jX6DJS7Ck?= =?us-ascii?Q?fcqSXGnAFxU8bvFuiHUph3UXYKv0PWHkvH34dKveeo3CvmZQjYP0IllBUTXg?= =?us-ascii?Q?pxNIfqJwOm/fn2jHTRXKB2YveG5tPXqjmadOLfMyzKohxvwK+dxJKik5zttk?= =?us-ascii?Q?GTfmQmaKMhGT1hOPu79FzOIhNWUljiejmurMr1d/swb6JKLm+EI6pnP/oz2/?= =?us-ascii?Q?ve+6GmcPDzY8lRDpI9j5Nvdg5EKlwwGSvXRvDbWoZaAeLVjhY9OhdkIC7+BY?= =?us-ascii?Q?8UDOAUgMpi8ChluRTGrNhSobhuVPUsxd+s87O2dTbgGES5qO4rfcrodYpx7W?= =?us-ascii?Q?cqCBU8RQPZxsOLVoaJLWns/CWkW1dPjhVwXDpfuH?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5994.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a3393967-a660-486c-7ff6-08db29431790 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Mar 2023 13:00:33.7325 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ma/n5iI8lTRg15hospGL0vUM5L86Ic36GTC+N2twbFzfn8Pb1NeiXY68cMMJagVxS78Lpw7NOwprSVO8TBUh7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB7440 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > -----Original Message----- > From: Zhang, Qi Z > Sent: Monday, March 20, 2023 8:59 PM > To: Xu, Rosen ; Huang, Wei ; > dev@dpdk.org; thomas@monjalon.net; david.marchand@redhat.com > Cc: stable@dpdk.org; Zhang, Tianfei > Subject: RE: [PATCH v1] raw/ifpga: remove virtual device unplug operation >=20 >=20 >=20 > > -----Original Message----- > > From: Xu, Rosen > > Sent: Monday, March 20, 2023 2:52 PM > > To: Huang, Wei ; dev@dpdk.org; > > thomas@monjalon.net; david.marchand@redhat.com > > Cc: stable@dpdk.org; Zhang, Tianfei ; Zhang, > > Qi Z > > Subject: RE: [PATCH v1] raw/ifpga: remove virtual device unplug > > operation > > > > Hi, > > > > > -----Original Message----- > > > From: Huang, Wei > > > Sent: Friday, March 17, 2023 4:45 AM > > > To: dev@dpdk.org; thomas@monjalon.net; david.marchand@redhat.com > > > Cc: stable@dpdk.org; Xu, Rosen ; Zhang, Tianfei > > > ; Zhang, Qi Z ; > > > Huang, Wei > > > Subject: [PATCH v1] raw/ifpga: remove virtual device unplug > > > operation > > > > > > VDEV bus has implemented cleanup() function to perform cleanup for > > > devices on the bus during eal_cleanup(), so there is no need for > > > ifpga driver to record virtual devices and unplug them. > > > > > > Signed-off-by: Wei Huang > > > --- > > > drivers/raw/ifpga/ifpga_rawdev.c | 99 > > > ++++------------------------------------ > > > drivers/raw/ifpga/ifpga_rawdev.h | 2 - > > > 2 files changed, 9 insertions(+), 92 deletions(-) > > > > > > diff --git a/drivers/raw/ifpga/ifpga_rawdev.c > > > b/drivers/raw/ifpga/ifpga_rawdev.c > > > index 1020adc..8e6e70f 100644 > > > --- a/drivers/raw/ifpga/ifpga_rawdev.c > > > +++ b/drivers/raw/ifpga/ifpga_rawdev.c > > > @@ -140,8 +140,6 @@ struct ifpga_rawdev * > > > for (i =3D 0; i < IFPGA_MAX_IRQ; i++) > > > dev->intr_handle[i] =3D NULL; > > > dev->poll_enabled =3D 0; > > > - for (i =3D 0; i < IFPGA_MAX_VDEV; i++) > > > - dev->vdev_name[i] =3D NULL; > > > > > > return dev; > > > } > > > @@ -749,17 +747,11 @@ static int set_surprise_link_check_aer( > > > struct ifpga_rawdev *ifpga_rdev =3D NULL; > > > struct opae_adapter *adapter; > > > struct opae_manager *mgr; > > > - char *vdev_name =3D NULL; > > > - int i, ret =3D 0; > > > + int ret =3D 0; > > > > > > if (dev) { > > > ifpga_rdev =3D ifpga_rawdev_get(dev); > > > if (ifpga_rdev) { > > > - for (i =3D 0; i < IFPGA_MAX_VDEV; i++) { > > > - vdev_name =3D ifpga_rdev->vdev_name[i]; > > > - if (vdev_name) > > > - rte_vdev_uninit(vdev_name); > > > - } > > > ifpga_monitor_stop_func(ifpga_rdev); > > > ifpga_rdev->rawdev =3D NULL; > > > } > > > @@ -1778,104 +1770,31 @@ static int > > > ifpga_rawdev_get_string_arg(const char *key __rte_unused, static > > > int ifpga_cfg_probe(struct rte_vdev_device > > > *vdev) { > > > - struct rte_rawdev *rawdev =3D NULL; > > > - struct ifpga_rawdev *ifpga_dev; > > > struct ifpga_vdev_args args; > > > char dev_name[RTE_RAWDEV_NAME_MAX_LEN]; > > > - const char *vdev_name =3D NULL; > > > - int i, n, ret =3D 0; > > > - > > > - vdev_name =3D rte_vdev_device_name(vdev); > > > - if (!vdev_name) > > > - return -EINVAL; > > > + int ret =3D 0; > > > > > > - IFPGA_RAWDEV_PMD_INFO("probe ifpga virtual device %s", > > > vdev_name); > > > + IFPGA_RAWDEV_PMD_INFO("probe ifpga virtual device %s", > > > + rte_vdev_device_name(vdev)); > > > > > > ret =3D ifpga_vdev_parse_devargs(vdev->device.devargs, &args); > > > if (ret) > > > return ret; > > > > > > memset(dev_name, 0, sizeof(dev_name)); > > > - snprintf(dev_name, RTE_RAWDEV_NAME_MAX_LEN, "IFPGA:%s", > > > args.bdf); > > > - rawdev =3D rte_rawdev_pmd_get_named_dev(dev_name); > > > - if (!rawdev) > > > - return -ENODEV; > > > - ifpga_dev =3D ifpga_rawdev_get(rawdev); > > > - if (!ifpga_dev) > > > - return -ENODEV; > > > - > > > - for (i =3D 0; i < IFPGA_MAX_VDEV; i++) { > > > - if (ifpga_dev->vdev_name[i] =3D=3D NULL) { > > > - n =3D strlen(vdev_name) + 1; > > > - ifpga_dev->vdev_name[i] =3D rte_malloc(NULL, n, 0); > > > - if (ifpga_dev->vdev_name[i] =3D=3D NULL) > > > - return -ENOMEM; > > > - strlcpy(ifpga_dev->vdev_name[i], vdev_name, n); > > > - break; > > > - } > > > - } > > > - > > > - if (i >=3D IFPGA_MAX_VDEV) { > > > - IFPGA_RAWDEV_PMD_ERR("Can't create more virtual > > > device!"); > > > - return -ENOENT; > > > - } > > > - > > > snprintf(dev_name, RTE_RAWDEV_NAME_MAX_LEN, "%d|%s", > > > args.port, args.bdf); > > > - ret =3D rte_eal_hotplug_add(RTE_STR(IFPGA_BUS_NAME), > > > - dev_name, vdev->device.devargs->args); > > > - if (ret) { > > > - rte_free(ifpga_dev->vdev_name[i]); > > > - ifpga_dev->vdev_name[i] =3D NULL; > > > - } > > > - > > > - return ret; > > > + return rte_eal_hotplug_add(RTE_STR(IFPGA_BUS_NAME), > > > dev_name, > > > + vdev->device.devargs->args); > > > } > > > > > > static int > > > ifpga_cfg_remove(struct rte_vdev_device *vdev) { > > > - struct rte_rawdev *rawdev =3D NULL; > > > - struct ifpga_rawdev *ifpga_dev; > > > - struct ifpga_vdev_args args; > > > - char dev_name[RTE_RAWDEV_NAME_MAX_LEN]; > > > - const char *vdev_name =3D NULL; > > > - char *tmp_vdev =3D NULL; > > > - int i, ret =3D 0; > > > - > > > - vdev_name =3D rte_vdev_device_name(vdev); > > > - if (!vdev_name) > > > - return -EINVAL; > > > + IFPGA_RAWDEV_PMD_INFO("remove ifpga virtual device %s", > > > + rte_vdev_device_name(vdev)); > > > > > > - IFPGA_RAWDEV_PMD_INFO("remove ifpga virtual device %s", > > > vdev_name); > > > - > > > - ret =3D ifpga_vdev_parse_devargs(vdev->device.devargs, &args); > > > - if (ret) > > > - return ret; > > > - > > > - memset(dev_name, 0, sizeof(dev_name)); > > > - snprintf(dev_name, RTE_RAWDEV_NAME_MAX_LEN, "IFPGA:%s", > > > args.bdf); > > > - rawdev =3D rte_rawdev_pmd_get_named_dev(dev_name); > > > - if (!rawdev) > > > - return -ENODEV; > > > - ifpga_dev =3D ifpga_rawdev_get(rawdev); > > > - if (!ifpga_dev) > > > - return -ENODEV; > > > - > > > - snprintf(dev_name, RTE_RAWDEV_NAME_MAX_LEN, "%d|%s", > > > - args.port, args.bdf); > > > - ret =3D rte_eal_hotplug_remove(RTE_STR(IFPGA_BUS_NAME), > > > dev_name); > > > - > > > - for (i =3D 0; i < IFPGA_MAX_VDEV; i++) { > > > - tmp_vdev =3D ifpga_dev->vdev_name[i]; > > > - if (tmp_vdev && !strcmp(tmp_vdev, vdev_name)) { > > > - free(tmp_vdev); > > > - ifpga_dev->vdev_name[i] =3D NULL; > > > - break; > > > - } > > > - } > > > - > > > - return ret; > > > + return 0; > > > } > > > > > > static struct rte_vdev_driver ifpga_cfg_driver =3D { diff --git > > > a/drivers/raw/ifpga/ifpga_rawdev.h > > > b/drivers/raw/ifpga/ifpga_rawdev.h > > > index 0fb66cb..1c128c7 100644 > > > --- a/drivers/raw/ifpga/ifpga_rawdev.h > > > +++ b/drivers/raw/ifpga/ifpga_rawdev.h > > > @@ -65,8 +65,6 @@ struct ifpga_rawdev { > > > void *intr_handle[IFPGA_MAX_IRQ]; > > > /* enable monitor thread poll device's sensors or not */ > > > int poll_enabled; > > > - /* name of virtual devices created on raw device */ > > > - char *vdev_name[IFPGA_MAX_VDEV]; > > > }; > > > > > > struct ifpga_vdev_args { > > > -- > > > 1.8.3.1 > > > > Acked-by: Rosen Xu >=20 > Applied to dpdk-next-net-intel. >=20 > Thanks > Qi Sorry, this didnt happen, I replied on the wrong email.