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 24113A0542; Fri, 11 Nov 2022 09:46:02 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1871340150; Fri, 11 Nov 2022 09:46:02 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id 948054014F; Fri, 11 Nov 2022 09:45:59 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1668156360; x=1699692360; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=iBIR4wNgVaBjXg/fF9TI5v77wefJ2lGig7chx17cvEg=; b=Afltelv54Ja/rFkYt4DPqbTu1Aqz2hjavRjJJqTdAJRS0mlq3mTNefCQ iptZipXVsloeXJIN2HI+H5yCbOR7otv80TUCbuZOqSWexaGCssqY+UXrv pnSkf1RqQE+nkZNYdJeM6fOAVozFqiauFZStE80PWZfc9vD4Suh99ZSp+ CIKMAkH501//uimGcrqTPVEDY3EJFB38xiKHgRGJoZSElMDO9pD697W+F 8g+BEIDNYA+C1KX6nlh6tfwfKdker1KV3DqlV4HPzeohgTvPrTJ1LIUxh a4ivonfxQiOHYuPadm4JsOSUZ7uOi4ulsHd+WdSPE4j/WnXjw7ZS0Xu+d A==; X-IronPort-AV: E=McAfee;i="6500,9779,10527"; a="299069864" X-IronPort-AV: E=Sophos;i="5.96,156,1665471600"; d="scan'208";a="299069864" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2022 00:45:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10527"; a="588505767" X-IronPort-AV: E=Sophos;i="5.96,156,1665471600"; d="scan'208";a="588505767" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga003.jf.intel.com with ESMTP; 11 Nov 2022 00:45:58 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 11 Nov 2022 00:45:58 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Fri, 11 Nov 2022 00:45:57 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Fri, 11 Nov 2022 00:45:57 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) 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.2375.31; Fri, 11 Nov 2022 00:45:57 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AWHaKq+Mf/+gQaZu2rCpvFmiOgB/nEjqeMTahUDNGXpvnArpopvkKakR5iFgYfnSuz2lruAmyhn6O39mJGN87e3p+W1Osj1KYTwgSs6M1dkQ38+FnYInJgGo+E5vAoUeyZnyvgjLRNhkiCvaFBrFbk40VXKPRbLGjE4QXl2B/RtNh3PLEOzVU35mx55coFNph0uYj4tyuxTieKBcDbvFaVC06I6j0M2yfjhalKmBzn1vuPEme53bxUZeGM648+F+Gm1TYa8unkRLMAte+W1TeDnOATrHt8fDnuYx7Djc1ifLVmuu6Xg+7/8rbJWrXxHylyL+SGOgHvcuEcVWizUazg== 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=wJnZWgYQcqoTSRzpoWoxWCKeBKpH3zCpFawxm9el69g=; b=EnZKAB94jk6DIngdojswLTcXoqEGDvw0hFFbOiII94HLtqdh2wydRIF2BkCDc2LWOA3RfkYXCy9oaDV6LHmdSIm9GgXb0Mmc1D3j+/zDcdo+bolB+VybkDhLFMXwbNGUi28WEzO1rvdowAHjil7AbPH0JPEDlRY5fBqB1NIc4Mkx6ZElRxXX2e+DDyoJfC3vnDfJiDnvUt3UAcgi2fS9aIaxpf8uR1xob6e44v34tPofYJq3Jq8TcVt1WCOJr9JrtkHcZym2hlMmmj1P6T+byxBBtMmOJGevdRwYupkLEPaEQn/TCw23+6mErNk6KGFYFzyFQaQeDneY0dzjVEGhNw== 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 CH0PR11MB5314.namprd11.prod.outlook.com (2603:10b6:610:bd::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.12; Fri, 11 Nov 2022 08:45:55 +0000 Received: from DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::e2ac:cde3:4d74:3fa7]) by DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::e2ac:cde3:4d74:3fa7%3]) with mapi id 15.20.5791.025; Fri, 11 Nov 2022 08:45:55 +0000 From: "Zhang, Qi Z" To: "Ye, MingjinX" , "dev@dpdk.org" CC: "Yang, Qiming" , "stable@dpdk.org" , "Zhou, YidingX" , "Wu, Jingjing" , "Lu, Wenzhuo" , Ferruh Yigit , "Li, Xiaoyun" , "Liu, KevinX" Subject: RE: [PATCH v3 2/2] net/ice: fix scalar Tx path segment Thread-Topic: [PATCH v3 2/2] net/ice: fix scalar Tx path segment Thread-Index: AQHY9YR+RJh4fdpEdEa6hyG0xntkVa45KwnwgAA5sQCAAAPTQA== Date: Fri, 11 Nov 2022 08:45:55 +0000 Message-ID: References: <20221109125609.724612-1-mingjinx.ye@intel.com> <20221111120401.802805-1-mingjinx.ye@intel.com> <20221111120401.802805-2-mingjinx.ye@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.6.500.17 dlp-product: dlpe-windows 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_|CH0PR11MB5314:EE_ x-ms-office365-filtering-correlation-id: 0c39f753-c4bd-4705-ebbc-08dac3c12590 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: g3YIC8W40pq1bc8x/6ysZlBfNBgxbbZuv7y7m8ne/PS5LDA1eMzEupO4j38TYcG1rhJVP1A+Kj/yMrdCGI5kANYDGNonkSex5x3Wq3cVve4mYqZU+Oxz/kcfn227/9h0NIVsOPx1fyWAP8Mh3d7Nfhu7h1GWp+nA6QvJTBaD+fPbMWhlv4nnVZ5E3e7UytpsyEpytHsrNcCJTPysHBmdcOzzQkC8tk5bs7KHUAtQyme4vboSeaVPTSD9MrzOpOM8HlZ4IP29/u37ucMEGU6ETExaZtrQLNLLKl/YMqiaNxpX4YYtAlYhYpnHgBn1qGV2WvP7f+7BB03rRFyCefXnrEudME5EgJbMExL2nziz/tG/MivH+bJDMOuXeCP4NjFyIWPbhnE4YtPTI+7DBaJSRcV+pIHvlOJ8O3YNHfUMN5efe6sB5cWV39bJLuqmLaCx4pnimekdVTkZuvtCzE1lN+//3SXaxqUoRexLO+gkJQas4ksyfujwJcBsjz7dFFKI21G2AUBUx0RMDj2m3iExMA1VA6OivEKSsoldZpbKTHhiJi/bccDYLpmMHYtvzPy0nA1zHkLYSdhndbrnY3k9FCBbvjjJIWPW+WQ7RSXoqWAzJptmxbb5/LAMiDX9YEFjOLplNPlmZ2syiI0cwiDXooTd3TrSjIAh+ok5K4h0aERL7AVsO+CmCMteqoajjNFm9ka9jZB1KBvnS90cTFU6l4bOY/sPTeLEDLe6iY6wEqvzlh4VF89soT8jUKxousRDo6ecZCX+HlrhrQzrcxh6vA== 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:(13230022)(136003)(376002)(396003)(366004)(346002)(39860400002)(451199015)(64756008)(66946007)(82960400001)(8676002)(33656002)(66476007)(76116006)(450100002)(66556008)(122000001)(316002)(53546011)(7696005)(66446008)(4326008)(38100700002)(55016003)(83380400001)(2906002)(41300700001)(26005)(9686003)(86362001)(186003)(5660300002)(8936002)(52536014)(6506007)(478600001)(71200400001)(54906003)(107886003)(38070700005)(110136005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?bHprYkIzUlZsSDYwSzVhZTRVZXpLV1ZJSHkzM1p2SjdrNHF2ZHZzZVRy?= =?iso-2022-jp?B?dnZWTXpSWGtVR2xHOGxlV3MxTnhneHBSTE5hL2hFcEZ6b3BZemg2Z2lX?= =?iso-2022-jp?B?SXl2QlgzM0ozc1B0bkhCUWxTWFBRUWxZOThveTNzcEpWem05SzdzNkRW?= =?iso-2022-jp?B?enNpOE9YR2N0Um8wK29oS05DK2t3cEFaeC9uYVkyMnZTY1dvTitjWmxk?= =?iso-2022-jp?B?RC9uMmN4ajVXTlNkUTFxNXBQa0VQSW9CSWs4OG01QjVCL3VRVE02S3NL?= =?iso-2022-jp?B?UjRrbEN2ZDR6Vnd5OHBydmIvZkQ5YTBRMitZVWlkeVo5K2RNLy85NDlO?= =?iso-2022-jp?B?YlNyTTdDMDA4NzZaZ3pzeVhicDAxUDdkTEhzYzdLWHhjenJDQklZMG1o?= =?iso-2022-jp?B?UWEvKzJaRXpyRFZxMVpJYUlpSWVYOUFObDFoZzEvMWJqRnR4SE95eUxK?= =?iso-2022-jp?B?WWJRZ0dxTStwYjY3T0l5N3pHRzRZZ2wzcmV1QTB3ZUV6clBSRzlxVjEx?= =?iso-2022-jp?B?eUVmNVhjUmlSeEdMV21XZ0hnM3RPbkhmZHVuUTgzNmlXV2xXMFl4Wi9z?= =?iso-2022-jp?B?N0EvWFFLUkMxSnhONnpsd0kvSWxHMFVUdnRZeExJbWJmeGJkaW1uOVkv?= =?iso-2022-jp?B?VXVGT2VOaUd4Y3VJQjBiMG9rQmNrYWpGcXA3cGM2T09BcWFWQXZkM0NK?= =?iso-2022-jp?B?QkUvYkw2WnUxVXJTSkhTQU1iNHlmbGxvc0VyOWdUT3BtSHZHZWZCbFBC?= =?iso-2022-jp?B?enBkUDlkaE5rcDFOVks4aTZLZUNuN0xTT2tSNlBsZzBaeDU4ZHVuaFB6?= =?iso-2022-jp?B?VVMrOVl0dmY1Y3VQa1U0aEpsUXp5RVJiRkFQVmVrNnNsbS9vc3o5RExv?= =?iso-2022-jp?B?M2duREhVajRmbEJHT25MZ2ZoaVVabkRyUzZkSGNzQVg5aDZxVkprRzN4?= =?iso-2022-jp?B?bmpRN2JTaXNLVzRvQW1SM0FUdDhNVEwveGFZUi9sYTZZY0dRSGNVZkpB?= =?iso-2022-jp?B?YjZmMlBLUCtmaHZyYWlVWUI2SG52cFBKOVJFMk5QMDdqVmkyWit2S2l4?= =?iso-2022-jp?B?aTN4SnJRbGlqb3hwTVlYdWFyVit4azZRbjV3NCt2YjMzaHVWQkZRcUUv?= =?iso-2022-jp?B?K2dpcy96L0Zod2ZNM243bzRXTjBuUjhScmRrTnlBQ0RmcTBmK0ErWHFu?= =?iso-2022-jp?B?K2xiTTd4QkFUVWNCVUZwODI5VDJTbEh0WUx0OUNOUEdPUW0zSXYyY1Z4?= =?iso-2022-jp?B?K3FNMytQSVE0V2QzbFplUHZSY0V2cU90WDJCbjI4eWhTWS85b0Z6djlO?= =?iso-2022-jp?B?UFJWc2U1NG1pU3ZneHZRNit5cFZubEI3TG9kRnZnWE8ySytoYy9WVW9l?= =?iso-2022-jp?B?QUdJSXVQNWtNYWliTVJTUis0VHQ0UVFzVytHQ2lZQlB2VXhKWHo0SFA3?= =?iso-2022-jp?B?S29GRnNUR2tFSTlqRUtDNFFwZll5bCt6cnhQUnU0VlVta0pkOXFTVXl3?= =?iso-2022-jp?B?MmRjZDZ3c0kwZWVndC9lVGVwVnZ4UjliWmNTSFN1U1lmaVBjTVA4c05V?= =?iso-2022-jp?B?REdnUmNJK3pXTzlFOFlsa2kzTGdMdVFsQVA4Mlp5c0d4b1YyYTYxMGtH?= =?iso-2022-jp?B?VDQvVlRMNVZ1QzlSa0ZQblhBemVzZHFNeVBSVWVodnVjUjVwaG1WR0N6?= =?iso-2022-jp?B?cTV2c0VEMG9ucVpEdGg0V0h5WTgrVW4yRjhISm5LK1MvQjNRWWZsYy9w?= =?iso-2022-jp?B?MzJaMExyemhtTGF0OVBtY1l3MGpCbi8wdkcyZFpMMm5PRmUvS0tKMzMv?= =?iso-2022-jp?B?d2hqL3FRUGdsVytQWFlrM0tSOW5YREF0eDAxK1pXblZuR0Q2L0haWWpa?= =?iso-2022-jp?B?OUR4Y01vWXpYMVY3a0pEQjVNNGZ3WXFaMGNQTDdzdXhLb3l5SWNYdmUv?= =?iso-2022-jp?B?WEJseWhpZzRGNys4QUh2WU1CMnJMb0FjZWY1R002c3V3NG5hTGpSNzJj?= =?iso-2022-jp?B?M0hPc1RNaXRLVS9MajRPY0MrbHhiTFVER2NkdStSbzkrQWxjK2FZaUNa?= =?iso-2022-jp?B?cnRGN0dVMzQ2U202NVJndkxzK3gwTGE4aUpTQzh5THFPY08xVVFoVG9p?= =?iso-2022-jp?B?WWF2ZFJ6RHBnWWhxZlpXTVZJa3VEUi9TVXR1RXRCNDZoVGRuUHFmUi9p?= =?iso-2022-jp?B?aE5TMGFGODU0Sk1JSnhkaGIwTXpESmVtNGVianZaUDZNcGFpTGhER3M2?= =?iso-2022-jp?B?OUJEUzB1NDhEdkxGTlVneUhpeWoyd0MzUVBvQ0VpTTJCNXdIcWViS3VH?= =?iso-2022-jp?B?MWF4OA==?= Content-Type: text/plain; charset="iso-2022-jp" 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: 0c39f753-c4bd-4705-ebbc-08dac3c12590 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2022 08:45:55.2549 (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: 31Nr1UrstSIriIwBOvH3GT6U6VtHtXuIFDbJGzP+HSrpnxbnmt6qZ5ibe9s/CfGOtPDIxRGqfnb04TYlOTp1Ew== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR11MB5314 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: Ye, MingjinX > Sent: Friday, November 11, 2022 4:31 PM > To: Zhang, Qi Z ; dev@dpdk.org > Cc: Yang, Qiming ; stable@dpdk.org; Zhou, YidingX > ; Wu, Jingjing ; Lu, > Wenzhuo ; Ferruh Yigit ; Li= , > Xiaoyun ; Liu, KevinX > Subject: RE: [PATCH v3 2/2] net/ice: fix scalar Tx path segment >=20 >=20 >=20 > > -----Original Message----- > > From: Zhang, Qi Z > > Sent: 2022=1B$BG/=1B(B11=1B$B7n=1B(B11=1B$BF|=1B(B 13:09 > > To: Ye, MingjinX ; dev@dpdk.org > > Cc: Yang, Qiming ; stable@dpdk.org; Zhou, > > YidingX ; Wu, Jingjing > > ; Lu, Wenzhuo ; Ferruh > > Yigit ; Li, Xiaoyun ; > > Liu, KevinX > > Subject: RE: [PATCH v3 2/2] net/ice: fix scalar Tx path segment > > > > > > > > > -----Original Message----- > > > From: Ye, MingjinX > > > Sent: Friday, November 11, 2022 8:04 PM > > > To: dev@dpdk.org > > > Cc: Yang, Qiming ; stable@dpdk.org; Zhou, > > > YidingX ; Ye, MingjinX > > > ; Zhang, Qi Z ; Wu, > > > Jingjing ; Lu, Wenzhuo > > > ; Ferruh Yigit ; Li, > > > Xiaoyun ; Liu, KevinX > > > Subject: [PATCH v3 2/2] net/ice: fix scalar Tx path segment > > > > > > The scalar Tx path would send empty buffer that causes the Tx queue > > > to overflow. > > > > > > This patch adds the last buffer length judgment in tx_prepare to fix > > > this issue, rte_errno will be set to EINVAL and returned if the last > > > buffer is > > empty. > > > > > > Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx") > > > Fixes: ccf33dccf7aa ("net/ice: check illegal packet sizes") > > > Cc: stable@dpdk.org > > > > > > Signed-off-by: Mingjin Ye > > > --- > > > drivers/net/ice/ice_rxtx.c | 24 ++++++++++++++++++++++++ > > > 1 file changed, 24 insertions(+) > > > > > > diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c > > > index e6ddd2513d..69358f6a3a 100644 > > > --- a/drivers/net/ice/ice_rxtx.c > > > +++ b/drivers/net/ice/ice_rxtx.c > > > @@ -3643,6 +3643,22 @@ ice_set_tx_function_flag(struct rte_eth_dev > > > *dev, struct ice_tx_queue *txq) > > > #define ICE_MIN_TSO_MSS 64 > > > #define ICE_MAX_TSO_MSS 9728 > > > #define ICE_MAX_TSO_FRAME_SIZE 262144 > > > + > > > +/*Check for invalid mbuf*/ > > > +static inline uint16_t > > > +ice_check_mbuf(struct rte_mbuf *tx_pkt) { > > > > Better to name the function to exactly match what it does. > > e.g.: ice_check_emtpy_mbuf > > and also declare it as inline. > will optimize. > > > > > + struct rte_mbuf *txd =3D tx_pkt; > > > + > > > + while (txd !=3D NULL) { > > > + if (txd->data_len =3D=3D 0) > > > + return -1; > > > + txd =3D txd->next; > > > + } > > > + > > > + return 0; > > > +} > > > + > > > uint16_t > > > ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts= , > > > uint16_t nb_pkts) > > > @@ -3653,6 +3669,7 @@ ice_prep_pkts(__rte_unused void *tx_queue, > > > struct rte_mbuf **tx_pkts, > > > struct ice_tx_queue *txq =3D tx_queue; > > > struct rte_eth_dev *dev =3D &rte_eth_devices[txq->port_id]; > > > uint16_t max_frame_size =3D dev->data->mtu + ICE_ETH_OVERHEAD; > > > + uint16_t nb_used; > > > > > > for (i =3D 0; i < nb_pkts; i++) { > > > m =3D tx_pkts[i]; > > > @@ -3689,6 +3706,13 @@ ice_prep_pkts(__rte_unused void *tx_queue, > > > struct rte_mbuf **tx_pkts, > > > rte_errno =3D -ret; > > > return i; > > > } > > > + > > > + if (!(ol_flags & RTE_MBUF_F_TX_TCP_SEG) && > > > + ice_check_mbuf(m)) { > > > > Why "!(ol_flags & RTE_MBUF_F_TX_TCP_SEG)" is needed here? > > A empty mbuf with TSO enabled is still acceptable? > Should not be expected to be implemented in test-pmd, should detect. Why related with testpmd?, testpmd is not the only application, this is the= question for how to identify a violated mbuf. > > > > > + rte_errno =3D EINVAL; > > > + PMD_DRV_LOG(ERR, "INVALID mbuf: last mbuf > > > data_len=3D[0]"); > > > + return i; > > > + } > > > } > > > return i; > > > } > > > -- > > > 2.34.1