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 890BDA04FF; Tue, 24 May 2022 05:27:15 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2AF4D4014F; Tue, 24 May 2022 05:27:15 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 76C07400D6 for ; Tue, 24 May 2022 05:27:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653362833; x=1684898833; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=hQBpswltCp5KumRiIB3RCtf1Go5pDDimPvt6hiMRV6Q=; b=IH/4zr2B1w4hFEB1I0NAYh7AZjayGIa8UsoH0LkvefA9OKfS/WYDo/qy VIM/T+CvMrn68KUJghtz1Ii72ek7Iq6VzHme8vmrwMlCUDAfqhuAZONGx k9mPdrlEEHOpqj7IlAJt+DiQrhxL2m09/G+i6H5dnwxvNVa19Mm5mfaZF 6CXSlacpzMH9AEiCy4qws+RyrpBDaoh05dRcfEBbwQ0xzCsPlCp7dXgLS +RWg37yf9XJjSAQbazu0iv+cz6B1YAea3RaqSeQzAO3hJnqf/29Gz+TbI QlS2KYgWJam0h6BNSZj3KLbCs7DTgj1n2JTKvp6qLaT+aZGm5M0OEZrCc Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10356"; a="334065889" X-IronPort-AV: E=Sophos;i="5.91,247,1647327600"; d="scan'208";a="334065889" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 May 2022 20:27:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,247,1647327600"; d="scan'208";a="601004362" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga008.jf.intel.com with ESMTP; 23 May 2022 20:27:12 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 23 May 2022 20:27:11 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Mon, 23 May 2022 20:27:11 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.174) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Mon, 23 May 2022 20:27:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gberxaGRxwa4MCd4b4Eek2KhgW20d7mYjKkE1LQenj+/+OtTJZMQJ/HlZlPqja0rXwEpzUx85hQ4T0PMJQxoEv/NZpFhhkil0VKlxEuwqdxSBQHw6HyE4OJJLs/HM+5K3oGrYE5bNtFRqzWUz6am0sQgleLnmsvsInTKDomj1ZyhPJtXE+Fm+ckbAnskGaCoci1tHskYvAwQrBY4ipN0aeLTl+7yz40ZFdvPiFY0i2OWO0sN1qmW0k8+X4mAhaXJFzRiy5ae6wyrq8Sb+kMQWJIkry6+aNzbOswP8n9Bz1nd0ji0ANMGK0XUNJk+IhDNIrSLfOX8bT8IjNSe19M89w== 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=zWsCJa8RSLwc0zZBrGT0BDYVpJ9Tlo+T9MUV/vWu974=; b=JZP504NGgyfup7PxddHh+XMGx1ln29gFNfpAcys8PKGckhwLncqTP9MJNXYINA7UwTk36yj4LFYVWzX98I61+CldmB9k5eqLuN3jFsRuhVwTAvzoISX9ZuVSdyqeE1NmUlAvLncmoP6X6nzWvZ3jpXFWAo/gEEAdWqdjWjsmFenKijn9NtewZ/0l8+egpb1USqrFLafO4agLxWjzDlp0UliqURK17H367vxTL3BknY+ekJjJKUMEC2UG3fmjGdXQIH5mxRSFRJj14XIFbsqPrslysbRH6bd69ZOlrQVX6l4c+mPZWogZpsLVrK7R3Ag8dbLZRcO5rbMQmVQzZa2spA== 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 DM5PR11MB1739.namprd11.prod.outlook.com (2603:10b6:3:111::22) by MWHPR11MB0014.namprd11.prod.outlook.com (2603:10b6:301:64::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.19; Tue, 24 May 2022 03:27:09 +0000 Received: from DM5PR11MB1739.namprd11.prod.outlook.com ([fe80::8c3b:8a54:d186:b555]) by DM5PR11MB1739.namprd11.prod.outlook.com ([fe80::8c3b:8a54:d186:b555%11]) with mapi id 15.20.5273.023; Tue, 24 May 2022 03:27:09 +0000 From: "Pei, Andy" To: "Xia, Chenbo" , "dev@dpdk.org" CC: "maxime.coquelin@redhat.com" , "Cao, Gang" , "Liu, Changpeng" , "Xu, Rosen" , "Xiao, QimaiX" Subject: RE: [PATCH v9 04/13] vdpa/ifc: add blk ops for ifc device Thread-Topic: [PATCH v9 04/13] vdpa/ifc: add blk ops for ifc device Thread-Index: AQHYbo8NOJHBF6P7GEe/SfRfRmPr460tVhfAgAAI+/A= Date: Tue, 24 May 2022 03:27:09 +0000 Message-ID: References: <1643093258-47258-2-git-send-email-andy.pei@intel.com> <1653298524-232138-1-git-send-email-andy.pei@intel.com> <1653298524-232138-5-git-send-email-andy.pei@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.500.17 dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b48f7cac-715d-44ee-bec6-08da3d354923 x-ms-traffictypediagnostic: MWHPR11MB0014:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Omo+KasiBYpzMWEaogNNO2I7SrTz9Se6GqCXGyoXFLg9wqVG7hvddqz1fyg3U+C2y5InE9yPPqr14bBRE9Dzyu5iHZdrfs5/sMjVZS8GE/2jb3BPIHwkTnaRg+R1HpmmMfozb1PxOTPdWt2d3SJGcl11M0bdcUEUG0u/usTMHhxclg3NjV8Ne0PALx3Xbvu+UDtd/XRKt6jONz4lARjKTCrONAv41ygt2PgfgBhhVhlCAibhK4gXCCoelBdoagd7MDdE0IbZJZRO+CUbhiH73HpqiHjyR9EuxFNemzfkRBVO1RgnI9GGcmylGQ7iXyWsaZ/XRFaCma0jOeExGBunN+mSWW1R9vzucPrvRXC2JOAWMSCCrre20J2iThOjoxYJ4cPUyTdSmoxXW9qRBvfb1BM3ic6XZf+hp+StMEjETE7zOmj+zF1pnr52ecdjHFHZYEViRhDPbmnk4kzWUad9TZdVy3ErcODYbANm2/Q1SEk5KpMLVz4ymQ1CvzBPpOpS1LOoXly09Ewc8mJzygLwHwP02VhwtE7TROU8GALsFOY1mVNOpVZc5R14MGHMsOo4/OprYk3lt5D2XnP1SCAcN/H4gCc32qGRMjNjNHL+zSmYLWTmsF1PP3nNY7pCNkr3U2Vl+NfoO1y6/0TN+pKnDtM64Uzz55HE2pWP3ametHyDPVT3cEYedqoW8uXheaZgDm+VG9PyQYhM6hCJK6pPCA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR11MB1739.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(86362001)(26005)(66476007)(66556008)(64756008)(38100700002)(186003)(38070700005)(54906003)(71200400001)(9686003)(76116006)(107886003)(66446008)(110136005)(66946007)(2906002)(6506007)(33656002)(55016003)(5660300002)(316002)(53546011)(52536014)(7696005)(508600001)(4326008)(83380400001)(8676002)(82960400001)(122000001)(8936002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?yPdHoz5+0deNbl7DwUUDwdG0Yp8pFXcs6ek6IxjPI1Kbfd9e6YtTxzO4Qj64?= =?us-ascii?Q?0GU/6SOiCv4OqsmnX8xy/2i1OVM+XqQEMMTMANJi/fXRICv5QftJMBBp10W3?= =?us-ascii?Q?3FiYe3/UEGwVTKDBtwqNB8JiIBZHyJJIV3tjBYchRfPC6vCfi5kHu4lKXEdN?= =?us-ascii?Q?awjAp+yoSOvd3ROxuNKur66zHU95cXklCKJlALTjv5yAOpcj0lqUaURJ0HOk?= =?us-ascii?Q?H0CcyD6cjUsQNJg2rM7ytE8B73EdIrJ2MOX8qRYs0DVguB8KWQrFaUUYvaEe?= =?us-ascii?Q?pqnhahG76ALAEXlnhjjLFzZE1wEuos+g/qke9b3HOfZKrXyaoxrics45g3gd?= =?us-ascii?Q?cCMiWDvwuYNL4FxLBWfkfcjJnkMOyo74L7DCcCkp8otvAorNMR4VQ5Oi1Zpk?= =?us-ascii?Q?p45yMFrgVJJsZjRKAWF3JSdeKZZ7tLBq+SlIAeybTpA4AvlE255GS9G5E5B/?= =?us-ascii?Q?p3ntRN7FUx8B49qKLk17aMchS12ve5yBpp1MmJXaLpuBQeM53Wf9bPg+yPmF?= =?us-ascii?Q?65k+4YILD8z55oc7/jxHwusFhrwNh9FxGMXQBECKnxQqjhLvFFMC90DynX8V?= =?us-ascii?Q?xg59U6Np768RTFS7WPzckJT+2Fpw/ta0Z4t7E53vTDwcIPZ4CZySx+CJ5q4n?= =?us-ascii?Q?Ff8PNYQO2Pi+dWhf9z+7K/UqwsuDyuYK+XWBRQ6ULzkYok6hBQwzjXpFFOIL?= =?us-ascii?Q?a0enDd4uPqTXM46FKczedAcW4oDRE3lPQAXL3eGm0wGA31BNViuDj0/KbUFK?= =?us-ascii?Q?ir5uelgadhGKzzLZUDhVIt8jULP3vfSphLj5fzNySYK+JTj9RTqHJE1EwNuX?= =?us-ascii?Q?Es4vBvBJH6qxQVa5ys2EWhEeYjiKbKdRR5oLNOeIunygfS/lHY3lCU9aBIZU?= =?us-ascii?Q?sbj+rplDdnSN+S2+GcObspO/P9FWokS6vg0IKRlMgGyWaFdxrK8vi6EwPDFZ?= =?us-ascii?Q?9sgd4xGqWWjHzN0vGJDJydIeKxUn6/UEpLEIB2rOxMdYH0u/HAR7ZGGFA26T?= =?us-ascii?Q?jypmyRu5cVZmITQoI6rmTe+wYI/FWElz8yue5ipkrhJx9mTJUjnlo7CdTKAk?= =?us-ascii?Q?IAI2IWeIcSzvspfDnsxl4OkeVUztY867gHjlIQIa1bk8A11vcp22M8ryl0xp?= =?us-ascii?Q?sfDYjNuATWma4mHiZe0wdsCzzVys/iYl4Qnwjboi6tmxvBuLaS2HUYZDP+FD?= =?us-ascii?Q?74haDX3od+dCkXnurSrydVL1ZGsBAN75riGa7WAuLASnlHGrS0yyL128lMFd?= =?us-ascii?Q?jyKso7G+KpmdB7o9QExNv/PkJq8h3oXUJSO9rlVgznA6bsjTMzVJR0RGGZ+v?= =?us-ascii?Q?bWb24RbUBlY+FjIAnpVohfgWv64gi6xnbeaInFS7Pk+1CDgWB2ZJNx5OP73x?= =?us-ascii?Q?3pDkXbz8hDk3+bFmgL8x2T87b99um19c6BxP6O7UCZa+usDQcsrSN6LtsyUj?= =?us-ascii?Q?dh56v9HF1qF02eA6tSPdd2GnddWQWjGuTt+3w4eAr4T5cwe5+ctwrGhbLSS5?= =?us-ascii?Q?+hZK+WINHMRgc8jrzhMlmV29OgX0sZ0HGj8R9Jh0Uw+2fO07OrkVOc44xJrG?= =?us-ascii?Q?UHZ6uuRo16fM1GZCsKXIK74wvv+1ayUpCIJd/mTt/H3h7Jh2EdLy1GgzJaMq?= =?us-ascii?Q?a1xOVEKt4J11bwezwNA+ZDb2P1+435ToY4cJBbPiMzOQ1JldHY5nFhNd3JGX?= =?us-ascii?Q?iNKGXfWY7NF04YqU5REsWE+fvuTYUbhxEWcP7C2Rn3t97FVkCD5H7Z7timiO?= =?us-ascii?Q?iM1di8vnVg=3D=3D?= 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: DM5PR11MB1739.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b48f7cac-715d-44ee-bec6-08da3d354923 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 May 2022 03:27:09.5361 (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: +hJRZDnIuCwb0kbthgj8Y0SPEUW2OCC9qptCMbA2SQzd7uCziV5gs7ehsuq9ejs+rHIU+NG7RyhCC8ZaKK85wg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB0014 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: Xia, Chenbo > Sent: Tuesday, May 24, 2022 10:55 AM > To: Pei, Andy ; dev@dpdk.org > Cc: maxime.coquelin@redhat.com; Cao, Gang ; Liu, > Changpeng ; Xu, Rosen ; > Xiao, QimaiX > Subject: RE: [PATCH v9 04/13] vdpa/ifc: add blk ops for ifc device >=20 > > -----Original Message----- > > From: Pei, Andy > > Sent: Monday, May 23, 2022 5:35 PM > > To: dev@dpdk.org > > Cc: Xia, Chenbo ; maxime.coquelin@redhat.com; > > Cao, Gang ; Liu, Changpeng > > ; Xu, Rosen ; Xiao, > > QimaiX > > Subject: [PATCH v9 04/13] vdpa/ifc: add blk ops for ifc device > > > > For virtio blk device, re-use part of ifc driver ops. > > Implement ifcvf_blk_get_config for virtio blk device. > > Support VHOST_USER_PROTOCOL_F_CONFIG feature for virtio blk device. > > > > Signed-off-by: Andy Pei > > --- > > drivers/vdpa/ifc/base/ifcvf.h | 4 ++ drivers/vdpa/ifc/ifcvf_vdpa.c > > | 91 > > ++++++++++++++++++++++++++++++++++++++++++- > > 2 files changed, 94 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/vdpa/ifc/base/ifcvf.h > > b/drivers/vdpa/ifc/base/ifcvf.h index a761d49..b6fdfdb 100644 > > --- a/drivers/vdpa/ifc/base/ifcvf.h > > +++ b/drivers/vdpa/ifc/base/ifcvf.h > > @@ -65,6 +65,10 @@ > > #define IFCVF_32_BIT_MASK 0xffffffff > > > > > > +#ifndef VHOST_USER_PROTOCOL_F_CONFIG > > +#define VHOST_USER_PROTOCOL_F_CONFIG 9 > > +#endif > > + > > struct ifcvf_pci_cap { > > u8 cap_vndr; /* Generic PCI field: PCI_CAP_ID_VNDR */ > > u8 cap_next; /* Generic PCI field: next ptr. */ > > diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c > > b/drivers/vdpa/ifc/ifcvf_vdpa.c index 1eed90b..c1fc1d7 100644 > > --- a/drivers/vdpa/ifc/ifcvf_vdpa.c > > +++ b/drivers/vdpa/ifc/ifcvf_vdpa.c > > @@ -1087,6 +1087,10 @@ struct rte_vdpa_dev_info { > > 1ULL << VHOST_USER_PROTOCOL_F_HOST_NOTIFIER | \ > > 1ULL << VHOST_USER_PROTOCOL_F_LOG_SHMFD | \ > > 1ULL << VHOST_USER_PROTOCOL_F_STATUS) > > + > > +#define VDPA_BLK_PROTOCOL_FEATURES \ > > + (1ULL << VHOST_USER_PROTOCOL_F_CONFIG) > > + > > static int > > ifcvf_get_protocol_features(struct rte_vdpa_device *vdev, uint64_t > > *features) > > { > > @@ -1199,6 +1203,91 @@ struct rte_vdpa_dev_info { > > return device_id; > > } > > > > +static int > > +ifcvf_blk_get_config(int vid, uint8_t *config, uint32_t size) { > > + struct virtio_blk_config *dev_cfg; > > + struct ifcvf_internal *internal; > > + struct rte_vdpa_device *vdev; > > + struct internal_list *list; > > + uint32_t i; > > + uint64_t capacity =3D 0; > > + uint8_t *byte; > > + > > + if (size !=3D sizeof(struct virtio_blk_config)) { > > + DRV_LOG(ERR, "Invalid len: %u, required: %u", > > + size, (uint32_t)sizeof(struct virtio_blk_config)); > > + return -1; > > + } > > + > > + vdev =3D rte_vhost_get_vdpa_device(vid); >=20 > Check vdev is not NULL here. >=20 Sure, I will fix it in next version. > Thanks > Chenbo >=20 > > + list =3D find_internal_resource_by_vdev(vdev); > > + if (list =3D=3D NULL) { > > + DRV_LOG(ERR, "Invalid vDPA device: %p", vdev); > > + return -1; > > + } > > + > > + internal =3D list->internal; > > + > > + for (i =3D 0; i < sizeof(struct virtio_blk_config); i++) > > + config[i] =3D *((u8 *)internal->hw.blk_cfg + i); > > + > > + dev_cfg =3D (struct virtio_blk_config *)internal->hw.blk_cfg; > > + > > + /* cannot read 64-bit register in one attempt, so read byte by byte. > > */ > > + for (i =3D 0; i < sizeof(internal->hw.blk_cfg->capacity); i++) { > > + byte =3D (uint8_t *)&internal->hw.blk_cfg->capacity + i; > > + capacity |=3D (uint64_t)*byte << (i * 8); > > + } > > + /* The capacity is number of sectors in 512-byte. > > + * So right shift 1 bit we get in K, > > + * another right shift 10 bits we get in M, > > + * right shift 10 more bits, we get in G. > > + * To show capacity in G, we right shift 21 bits in total. > > + */ > > + DRV_LOG(DEBUG, "capacity : %"PRIu64"G", capacity >> 21); > > + > > + DRV_LOG(DEBUG, "size_max : 0x%08x", dev_cfg->size_max); > > + DRV_LOG(DEBUG, "seg_max : 0x%08x", dev_cfg->seg_max); > > + DRV_LOG(DEBUG, "blk_size : 0x%08x", dev_cfg->blk_size); > > + DRV_LOG(DEBUG, "geometry"); > > + DRV_LOG(DEBUG, " cylinders: %u", dev_cfg->geometry.cylinders); > > + DRV_LOG(DEBUG, " heads : %u", dev_cfg->geometry.heads); > > + DRV_LOG(DEBUG, " sectors : %u", dev_cfg->geometry.sectors); > > + DRV_LOG(DEBUG, "num_queues: 0x%08x", dev_cfg->num_queues); > > + > > + DRV_LOG(DEBUG, "config: [%x] [%x] [%x] [%x] [%x] [%x] [%x] [%x]\n", > > + config[0], config[1], config[2], config[3], config[4], > > + config[5], config[6], config[7]); > > + return 0; > > +} > > + > > +static int > > +ifcvf_blk_get_protocol_features(struct rte_vdpa_device *vdev, > > + uint64_t *features) > > +{ > > + RTE_SET_USED(vdev); > > + > > + *features =3D VDPA_SUPPORTED_PROTOCOL_FEATURES; > > + *features |=3D VDPA_BLK_PROTOCOL_FEATURES; > > + return 0; > > +} > > + > > +static struct rte_vdpa_dev_ops ifcvf_blk_ops =3D { > > + .get_queue_num =3D ifcvf_get_queue_num, > > + .get_features =3D ifcvf_get_vdpa_features, > > + .set_features =3D ifcvf_set_features, > > + .get_protocol_features =3D ifcvf_blk_get_protocol_features, > > + .dev_conf =3D ifcvf_dev_config, > > + .dev_close =3D ifcvf_dev_close, > > + .set_vring_state =3D ifcvf_set_vring_state, > > + .migration_done =3D NULL, > > + .get_vfio_group_fd =3D ifcvf_get_vfio_group_fd, > > + .get_vfio_device_fd =3D ifcvf_get_vfio_device_fd, > > + .get_notify_area =3D ifcvf_get_notify_area, > > + .get_config =3D ifcvf_blk_get_config, > > +}; > > + > > struct rte_vdpa_dev_info dev_info[] =3D { > > { > > .features =3D (1ULL << VIRTIO_NET_F_GUEST_ANNOUNCE) | > @@ -1211,7 > > +1300,7 @@ struct rte_vdpa_dev_info dev_info[] =3D { > > { > > .features =3D (1ULL << VHOST_USER_F_PROTOCOL_FEATURES) > | > > (1ULL << VHOST_F_LOG_ALL), > > - .ops =3D NULL, > > + .ops =3D &ifcvf_blk_ops, > > }, > > }; > > > > -- > > 1.8.3.1