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 18F424416A; Thu, 6 Jun 2024 14:17:16 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EC22C402E7; Thu, 6 Jun 2024 14:17:15 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.16]) by mails.dpdk.org (Postfix) with ESMTP id 9AA0340299 for ; Thu, 6 Jun 2024 14:17: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=1717676234; x=1749212234; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=LHnS6nINUnFLNOKIfGpL6kp8u0cu288RR1yVYOPCx2w=; b=OnzAWJaPJxnPMI8EU2+10FVKXZSSmUwM6DO5SxaJgF5gOzWd664NSnvh WwZVjPXiLJ1IYuMqmBmgFoszu4soq3lR9hidiOUnD9gDQfXUfIpU9YsIM bS1MrSh2+bOFk/ghVbUshjy8LDqEPptDVcX2y5q67RtZVST1URg18YgaA YF3VL866APDvr0D/KF3OoMtvpQqB3oJ/jpygX/njMgACfMNOZGclaAu1P klpdrOr8tlybtDghuwLgVMs9EVCYdaUwZ389Yh9wvGIlPXO+laMVRV3IL Bv7Ykcl9t0YQoeqOlMy1RfZEb5X0T+58WPamjpz9OJ/dzLR6XV6QFP29O g==; X-CSE-ConnectionGUID: VzOG7z9PRLyvgLbKN00NAw== X-CSE-MsgGUID: S5bJc9vMTke19AJA2LGUCQ== X-IronPort-AV: E=McAfee;i="6600,9927,11094"; a="14475064" X-IronPort-AV: E=Sophos;i="6.08,219,1712646000"; d="scan'208";a="14475064" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by orvoesa108.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2024 05:17:12 -0700 X-CSE-ConnectionGUID: qQKFSfQkQJ2AZ+Jfg4eb/Q== X-CSE-MsgGUID: ISP+3KuCTMOGnXb1xZffSQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,219,1712646000"; d="scan'208";a="42888162" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orviesa003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 06 Jun 2024 05:17:11 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 6 Jun 2024 05:17:10 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Thu, 6 Jun 2024 05:17:10 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.42) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Thu, 6 Jun 2024 05:17:10 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S1Y+5ZgWenpnbu0WoyDIk4DsOEsLCz8gkBYmlCO/ZtsGMNZS7gGSRJXwriuiKh5kCrTkE3E/vre/4cmXIzu+N3r7UiqgyTPMOjom38cHnIWN+GcHmMd1JvJ8z6FQLFWW+7PKAxk4SDQ5sDVSlv/NXILlOx2jeTV7efaB0QvntPKFdJCVCylY8PEo6sdPhYOrfr6qlouivDx1/tw3lhdJTsggia0z0GYW5J+CRk42gPrh+g0N0jVYtVrzr262+QMYD7wP7TLIBz1ekD9Kkx4a0Kp3OJuY0MTvSZNcypgXu1lwVudBItBN7EVZKkIKgNfggpgs1Al0zlJI+H3ATVTvlA== 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=0ZaAW9ZhDwnYY7Olz19vYTOqBvII4kote3fnD85AJ/4=; b=GJKuR6mQ0T03aCP8hR2sIJfEG7Ej54dzD3nMGJZ47x635RIw+fOWRNTOlKeWQIjxpJ8xGIhymBp3i9vZ39ukyzfqWbOcpHT+7zrpNRauZVYLIfeVZyTHlatbtW7W7ZR+hEhy109qtbwhyYw/XlPyiuvXLALTvIjud3uMM8/dudywduTPofSu2uXwxkp0MBXWD7sLIFNOrE/p4RpDAtPT7L8oOlZSpMT8ssFdFM9F1nn1nIAc7yknVL2GqhF0Bcbdp7AZvMp9SVIGgJZoyoUtkfLMrf/vqOVQhQWa5uvYf0rMU/6DZQhkCzPtF+KwSZhF8BCtJKc22wCzmk9SV9WkEQ== 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 PH0PR11MB5832.namprd11.prod.outlook.com (2603:10b6:510:141::7) by DM4PR11MB6119.namprd11.prod.outlook.com (2603:10b6:8:b0::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.25; Thu, 6 Jun 2024 12:17:08 +0000 Received: from PH0PR11MB5832.namprd11.prod.outlook.com ([fe80::a467:823d:3fac:250a]) by PH0PR11MB5832.namprd11.prod.outlook.com ([fe80::a467:823d:3fac:250a%6]) with mapi id 15.20.7633.021; Thu, 6 Jun 2024 12:17:08 +0000 From: "Gujjar, Abhinandan S" To: "Kundapura, Ganapati" , "dev@dpdk.org" , "jerinj@marvell.com" CC: "Jayatheerthan, Jay" , "Naga Harish K, S V" Subject: RE: [PATCH v3] eventdev/crypto: restore opaque field between dequeue and enqueue Thread-Topic: [PATCH v3] eventdev/crypto: restore opaque field between dequeue and enqueue Thread-Index: AQHauAc3J93h5CJwV02MWzvC/27aJbG6oKAg Date: Thu, 6 Jun 2024 12:17:07 +0000 Message-ID: References: <20240604161848.1575399-1-ganapati.kundapura@intel.com> <20240606114637.2022802-1-ganapati.kundapura@intel.com> In-Reply-To: <20240606114637.2022802-1-ganapati.kundapura@intel.com> 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: PH0PR11MB5832:EE_|DM4PR11MB6119:EE_ x-ms-office365-filtering-correlation-id: 2e75a6de-e41d-4e56-fe27-08dc862295c0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?us-ascii?Q?1rspPy8oV3bfwS6gcsmiWEqd0yQLe92jVDHKwgsOkMCJSysh9HfDTaurLuQL?= =?us-ascii?Q?+f/T3SPakwtVtzy03fvIUrodIOmPgWG61Cl9ti6naG1qE5VnTJb8T2L/Q3oL?= =?us-ascii?Q?RUWmSrtYXsFsXNcku9threw/bPbz6IG4YJrx2WHg83FoYyhCL/vpvi6Gk7f+?= =?us-ascii?Q?5VeV26wrT7l7YMvrTgocBSpWKT6qOzYtnG167nJGLYDYQU+ge4ZBbzL8eKOU?= =?us-ascii?Q?WSZJrmkE11St3pUCkjiR0icjNCFqlcD+RldYiOuR3wqTWR6LzgVBdJ4wrVMF?= =?us-ascii?Q?+dNRtApwBuDI4hrWygymwqDGxs4/c8KFH7vJ9yYXY2vcj9VlVD33PUFAugR9?= =?us-ascii?Q?3Xc438zx5RqM/tpSIrb2HlSlEoeZt+lXdjotcHDIUBj73cD3EiqUSYbVIDN1?= =?us-ascii?Q?/ibq3Z1PLVLwYWCKgMRgDpATviRkVpO7oaVjY7BRQ0LC+9TY7SxCRcuUzHt7?= =?us-ascii?Q?3AIckUXBX1wYJBe4q8+e8/EUdA/Tr2DPUSjEvl6MmlCr2pi6d8FxAHbLo+FJ?= =?us-ascii?Q?96J126JA69zR8xjxs/ZxYXFDHJC0hiTmh7KDQ3nvZ4jwSQr/otkUyS1g0xVK?= =?us-ascii?Q?pkYr3j92b4lbZznDVmt7DNt7+5OxUAdjNxCNfFm5J60IJus4FftiucBNRLFt?= =?us-ascii?Q?0F6bW/E4O0yF80Tn90x6qVkSwZMEfgumRFYHkCQ8Bi0dyXLn1R7V0ZSbx2YD?= =?us-ascii?Q?03hPx9I6ul7JOAlgpaMw3VPNNfJsRkKSpK9gZbmERKlYhprCsad7NAmYqiHj?= =?us-ascii?Q?XcOIJrPiFak5s/O8mZ1hZERZVU12aoeb3bxoxrx4f1HxJBVXbeRpl7e8iNyd?= =?us-ascii?Q?U7gVNrclqDcuPdWLekFfiE/EHu1yYHHHp7tkTLdHSIu4aps1EpcLWWAQLL4I?= =?us-ascii?Q?pezgc6pGC4Y0q4Ly6jpKASxmNo4fhK1wGJfnSN0KYSLKL3CHkrOf5BaNnnNS?= =?us-ascii?Q?0qxXx7elZc38VfBv+c3Hfn+jV6RgW6WNtVSb9XJf2wg2N/1KUT2oz3b3dm64?= =?us-ascii?Q?FUpz8ygyLDvpuSiH8T4Yw4r8xxPvPY8/TamZ6qxTeQa+eNbTMeQof0sSltlt?= =?us-ascii?Q?xothNGRx/490Oo8/66N+lF1GD3TBeDZXIRlJIQqbc8vlKl4Adp2Yo/LDvzSR?= =?us-ascii?Q?mMq4c9jS7NEYjbSa0NguIM94glq2YiEHPYHiN2asVeI1Y7bAGB7FAMeIb3Xy?= =?us-ascii?Q?vyO4Bi1yyE6d1MFN0GVQyJP0n/Ty2uGpC4U7t2MG1pzVUv2gbp2blcWODc51?= =?us-ascii?Q?A9/Ab5wxqtNgauyYR4QKxlguY5L15DgD/rZ6TybkChEvpYkpjUmtS3bYGRo7?= =?us-ascii?Q?9jtBrDc0F6jdyLPuos+vb5lA6QmGHkSRPzTfUB3hJ+w+bzfl+2jFMPw7AFwk?= =?us-ascii?Q?wL6cWlw=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5832.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366007)(1800799015)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?L/+fb45r3MyhnfOHbjIpUv+5Nk8UxhioEDB8XODaMDMnf7b/RZpsG+emCO2l?= =?us-ascii?Q?pomIK0OdYgirZMeWNFQX9ev2VICdizJmr89eNmFdh8m3WLnQJwW1i9SMSZRX?= =?us-ascii?Q?3Gk803zikfGP02c8Jz1jhtjQtczQW6w3SgQYPr9MYm4hUGj+xHoWEXuI8euL?= =?us-ascii?Q?ntx4TRstwufhgajrh0C0F3J5JS6OCno8aj7jzrCBSkpFy/UzRST8arTKXDAH?= =?us-ascii?Q?7N9dfFUpEH6yDMLhAGXKc0POUxzKwWjvcJv6nnFG6sO8hLL9+jWuwWfASs1s?= =?us-ascii?Q?5DBethqI7M3hOd4jjO4S+cOCexbSBc79oYSC79IhTycH/Mx1kGOZKGyd/sDB?= =?us-ascii?Q?k+jEffiMkjTKMqrVA9HTtzy1mlO/fQ5b4YCSxaNu/vxR+P/mLwiyIBPNC28T?= =?us-ascii?Q?h6AUX6/fD5mSknwnMxWLU92CeSOyyyvlVq7Uu1zle4l78I/s9YHOMINW2W6y?= =?us-ascii?Q?BoakCjDokG5Wq2QSa87s6NMP2dgy5vYk5XlusyHbjUvjmCQGdpjSgsCOnhAx?= =?us-ascii?Q?GR+tac9GP//e98eQKcz9knPWA4weSUilM94DptLMBTYcHQq8WmYLDz5jGhYR?= =?us-ascii?Q?+6iNJ1OemWUfj+0thE7kdEPgJpTmjvL2+01p2sBRN5RiYLf8tZrzOl0lS0h9?= =?us-ascii?Q?TMBKdfb7n097Axjqe2TmdAoA22Jsy8/TCm+4zzTGLJxwdKE+Q4HXKjEYrXLX?= =?us-ascii?Q?bP70QYaxiZh87kmR4yqQEvf/dOcxoHkMV98xC1Kv81q/ZVlHJ9f4UgYJ2SNl?= =?us-ascii?Q?SqaVtKiPr6JCPFVcO3N4a7sEvDPdUm5tyUqvuYtmdo4csz7/ovir8FADY5Qz?= =?us-ascii?Q?lNFfaKW2jUF08brvt9fYNsYXPnf9id5SKDZ6p6HrA91bIKr6Hx1B6RyXFjIJ?= =?us-ascii?Q?Z6BB0KqMTfWMsibTKhdHGUr8FlkR591thuN5XgeUJQ/WH+xMMn4FaiSVVitG?= =?us-ascii?Q?MBDwBCpqvzBcQ3IBhKlb+kS8KjnNWGm3Rwi6I8mj+jbj5Kuhqdc9AQFhRayv?= =?us-ascii?Q?CbNO9CxIrl/KxD1mqalQ9OuBMCc6EJJiJzMTcylnC0hYaUCWumNt1plclO81?= =?us-ascii?Q?aaDo7vQRgLdrTBMsbMtIj3l+pDCfO4ZyfoywgAse5l3+saYLMZ4irJbdIOXe?= =?us-ascii?Q?/ovf0Y/2IdaP7EA9HiDj13WUDOWqe1yoQ1N9ImKmrI2zekPFak012AA9lIab?= =?us-ascii?Q?uizihuEVWaS9+MzhI+gwoMFVMqJhgudZ4KHcLVSRx6To9DMUqCSTEVrvEcVO?= =?us-ascii?Q?Jus27sFU+cMLQZY57FXSyCV5eBcuzLKjPn8dLeV7/Ck76hFV6sbbgfDukUql?= =?us-ascii?Q?DI7X0alTkPmkgprTUey5VZpqpV+TuBkjZtrsalP3hZM4j60BO0LbTnwaMqH7?= =?us-ascii?Q?fyGEC6CBK4C3NrdQRO0F8hi8IH/AtqTuzu5uBTT7y3fVepJuKAoIrsT9fBmX?= =?us-ascii?Q?wE0Pkz6N894I4qwFZZQ4wwQVCWHUvNKO+5+jEHl6kGcIcNPeCbTWTfYBhCsu?= =?us-ascii?Q?53o7iZqiw1Sp6Hd1XSzmUtacEeqEspMuq/63APohgXAyq4ug7rh80G2GVP7N?= =?us-ascii?Q?UiZArAqki+z/jniID6bEw9y/gpr0mrZLsBEeImgT?= 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: PH0PR11MB5832.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e75a6de-e41d-4e56-fe27-08dc862295c0 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jun 2024 12:17:07.9162 (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: hOz2zWZFgeK6qq+vSSUtLRSOo3KXrJ95uf2A1UGWxYDRhG74QqcwV/cUu7QklXkI+AySYvSMMUl6mMkNpbJJnPPRuMrERGi8e3OIy3bGjT4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB6119 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 Hi Ganapati, Few comments inline. Please update in the next patch and add Acked-by: Abhi= nandan Gujjar > -----Original Message----- > From: Kundapura, Ganapati > Sent: Thursday, June 6, 2024 5:17 PM > To: dev@dpdk.org; jerinj@marvell.com; Gujjar, Abhinandan S > > Cc: Jayatheerthan, Jay ; Naga Harish K, S V > > Subject: [PATCH v3] eventdev/crypto: restore opaque field between dequeue > and enqueue >=20 > For session-less crypto operations, event info is contained in crypto op > metadata for each event which is restored in event from the crypto op > metadata response info. >=20 > For session based crypto operations, crypto op contains per session based > event info in crypto op metadata. If any PMD passes any implementation > specific data in ev::impl_opaque on each event, it's not getting restored= . >=20 > This patch stores ev::impl_opaque in mbuf's dynamic field before > enqueueing to cryptodev and restores ev::impl_opaque from mbuf's dynamic > field after dequeueing crypto op from cryptodev for session based crypto > operations. >=20 > Fixes: 7901eac3409a ("eventdev: add crypto adapter implementation") >=20 > Signed-off-by: Ganapati Kundapura >=20 > --- > v3: > * Added Fixes tag >=20 > v2: > * Fixed TYPO_SPELLING warning in commit header >=20 > diff --git a/lib/eventdev/rte_event_crypto_adapter.c > b/lib/eventdev/rte_event_crypto_adapter.c > index db1c7f3..91a30ca 100644 > --- a/lib/eventdev/rte_event_crypto_adapter.c > +++ b/lib/eventdev/rte_event_crypto_adapter.c > @@ -138,6 +138,27 @@ static struct event_crypto_adapter > **event_crypto_adapter; > } \ > } while (0) >=20 > +#define ECA_DYNFIELD_NAME "eca_ev_opaque_data" > +/** Device-specific metadata field type */ typedef uint8_t > +eca_dynfield_t; > +/** Dynamic mbuf field for device-specific metadata */ int Offset of dynamic field, right? I see comment and statement are on the same line, please check.=20 > +eca_dynfield_offset =3D -1; > + > +static int > +eca_dynfield_register(void) > +{ > + static const struct rte_mbuf_dynfield eca_dynfield_desc =3D { > + .name =3D ECA_DYNFIELD_NAME, > + .size =3D sizeof(eca_dynfield_t), > + .align =3D alignof(eca_dynfield_t), > + .flags =3D 0, > + }; > + > + eca_dynfield_offset =3D > + rte_mbuf_dynfield_register(&eca_dynfield_desc); > + return eca_dynfield_offset; > +} > + > static inline int > eca_valid_id(uint8_t id) > { > @@ -491,6 +512,24 @@ eca_enq_to_cryptodev(struct event_crypto_adapter > *adapter, struct rte_event *ev, > crypto_op =3D ev[i].event_ptr; > if (crypto_op =3D=3D NULL) > continue; > + > + /** ev::impl_opaque field passed on from eventdev PMD Replace ev::impl_opaque with "struct rte_event::impl_opaque " in commit mes= sage and code > could > + * have different value per event. > + * For session-based crypto operations retain > ev::impl_opaque > + * into mbuf dynfield and restore it back after copying event > + * information from session event metadata. > + * For session-less, each crypto operation carries event > + * metadata and retains ev::impl_opaque information to be > + * passed back to eventdev PMD. > + */ > + if (crypto_op->sess_type =3D=3D RTE_CRYPTO_OP_WITH_SESSION) > { > + struct rte_mbuf *mbuf =3D crypto_op->sym->m_src; > + > + *RTE_MBUF_DYNFIELD(mbuf, > + eca_dynfield_offset, > + eca_dynfield_t *) =3D > ev[i].impl_opaque; > + } > + > m_data =3D > rte_cryptodev_session_event_mdata_get(crypto_op); > if (m_data =3D=3D NULL) { > rte_pktmbuf_free(crypto_op->sym->m_src); > @@ -657,6 +696,21 @@ eca_ops_enqueue_burst(struct > event_crypto_adapter *adapter, >=20 > rte_memcpy(ev, &m_data->response_info, sizeof(*ev)); > ev->event_ptr =3D ops[i]; > + > + /** restore ev::impl_opaque from mbuf dyn field Replace dynfield -> "dynamic field" in the comments > + * for session based crypto operation. > + * For session-less, each crypto operations carries event > + * metadata and retains ev::impl_opaque information to be > + * passed back to eventdev PMD. > + */ > + if (ops[i]->sess_type =3D=3D RTE_CRYPTO_OP_WITH_SESSION) { > + struct rte_mbuf *mbuf =3D ops[i]->sym->m_src; > + > + ev->impl_opaque =3D *RTE_MBUF_DYNFIELD(mbuf, > + eca_dynfield_offset, > + eca_dynfield_t *); > + } > + > ev->event_type =3D RTE_EVENT_TYPE_CRYPTODEV; > if (adapter->implicit_release_disabled) > ev->op =3D RTE_EVENT_OP_FORWARD; > @@ -895,6 +949,16 @@ eca_init_service(struct event_crypto_adapter > *adapter, uint8_t id) > } >=20 > adapter->implicit_release_disabled =3D (uint8_t)impl_rel; > + > + /* Register for mbuf dyn field to store/restore ev::impl_opaque */ > + eca_dynfield_offset =3D eca_dynfield_register(); > + if (eca_dynfield_offset < 0) { > + RTE_EDEV_LOG_ERR("Failed to register eca mbuf dyn field"); > + eca_circular_buffer_free(&adapter->ebuf); > + rte_free(adapter); > + return -EINVAL; > + } > + > adapter->service_inited =3D 1; >=20 > return ret; > -- > 2.6.4