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 D2039A0C4D; Mon, 4 Oct 2021 21:26:09 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 85A8D4068F; Mon, 4 Oct 2021 21:26:09 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id E686B40688 for ; Mon, 4 Oct 2021 21:26:07 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10127"; a="206376668" X-IronPort-AV: E=Sophos;i="5.85,346,1624345200"; d="scan'208";a="206376668" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Oct 2021 11:25:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,346,1624345200"; d="scan'208";a="477283018" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga007.jf.intel.com with ESMTP; 04 Oct 2021 11:25:25 -0700 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) 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.2242.12; Mon, 4 Oct 2021 11:25:24 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Mon, 4 Oct 2021 11:25:24 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.107) 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.2242.12; Mon, 4 Oct 2021 11:25:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=acHA2tfHgIU3kBEO7o2kTIgfSF6W590iCXwSTMVC7tkaejTkuas6F9TjYEPuoN0eDeL5DPXcKcHsy73X0cjquk4adQ0oLxyxaHwmJKCkXZg3UaFlSOFX5wS3tKKN5gjb2K8a907mFDZk5tpmmGZ0b6gIIRNaPOthlauRkasi6vvPpd9FS00BBPpT68qBpUplrXtuwBqK5rpRJWkHagxTvXd/yGA/RVYvERX2lYTqhxUEpOFdQ8GJDyt8k2xEq0akBOovG0AigCyHIKMWU6i8awIMq/ejkxqLpk79KkrbOZVCUkXCUSfUYboMQFXgDZnVSO8MNzDomGtd0QY7blhuPw== 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=XQxAflAl4wiPMdhhFYCPibeQ4gemIOPCGLkV+IWRm1Q=; b=N0F44dPfBg4/8T4zidZGHc3x0F0SNkOchBBxyVwOx4AmcmdtJq0XqgqXDY9q3FCERHuCG2dqvNpHVCSx35v407Q/CSBaeY0vpDub+yOmKI40BUbC5NMq9scvb013uSoV2Z2scabl8rPBXVAnVYE31W3+atzWYM8ckyzIfNvpuWQeUI9Jn30F76kezKBt8yWcYeP+3H2xV3XRdK5sG9/RN3MqMBJXCiyYCVzPgGLJFuUrjvk6/woUM4+a2UkmWq2S3PtA9RQssRYp/KxnYiIOtIvingIGB7RH2KUKn1zNFhTzMCklcK8NZUr4YLWqt0G+BZyOWm+gRQrJwkNQlGXy6g== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XQxAflAl4wiPMdhhFYCPibeQ4gemIOPCGLkV+IWRm1Q=; b=B4a8JvcafxGZxoCyNTvKId/BTOE3l/CVMKefg/hpacDV9FRAkB+qzMicgf5lhybSpEMwjZKWy8PA3nzqwrkiFKDvpLVYHNaTOIHecmwgj4FlHmBhACKQwWjzOr1djicc79M+EhWmHRv8LbRh2hS6a04XcJ+43jIKIzytQC9SzWw= Received: from CO1PR11MB4882.namprd11.prod.outlook.com (2603:10b6:303:97::8) by CO1PR11MB4996.namprd11.prod.outlook.com (2603:10b6:303:90::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.15; Mon, 4 Oct 2021 18:25:24 +0000 Received: from CO1PR11MB4882.namprd11.prod.outlook.com ([fe80::2df9:a342:1f49:6260]) by CO1PR11MB4882.namprd11.prod.outlook.com ([fe80::2df9:a342:1f49:6260%5]) with mapi id 15.20.4566.022; Mon, 4 Oct 2021 18:25:23 +0000 From: "Kundapura, Ganapati" To: "Jayatheerthan, Jay" , "jerinjacobk@gmail.com" , "dev@dpdk.org" Thread-Topic: [PATCH v4] eventdev/rx-adapter: fix segfault in queue conf get Thread-Index: AQHXuUPxvrmiCT2RWkSgqtbEG/6+SKvDI8vw Date: Mon, 4 Oct 2021 18:25:23 +0000 Message-ID: References: <20211001051954.1055473-1-ganapati.kundapura@intel.com> <20211001053000.1063729-1-ganapati.kundapura@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-reaction: no-action dlp-version: 11.6.200.16 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d385721f-58da-4558-087c-08d9876454de x-ms-traffictypediagnostic: CO1PR11MB4996: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5797; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qjnhSiaJt/c6rgEbVf/Yv9gVpumCdbyUVhCKexBFlqlyMcVBF/avzfydJaf9Ucwa+N8SD2MlnP9QaRoHspoENFYOFKdXwQ6ZJK7fliTVdL57tXXHYbIDZGXJDR8NU5aqButV5I824FOwvnXv3jgx/STffNW36uQC6yhb4eOLvZPJ2zyVZj3L2OlXR7L61tzAYZ63pP9ZEMs48AOaxVopX1N14rtYFVGS/xgWL/+sdg07I0jKBVPNZHIlzmCkd7nIypeRQgqB/gCHKWoUBF4h3rZ5tXhpRHXFjqOmwtmuv3XYig1Ct2kfgv/CgC4IC43YoSVhauXyS2ATDwkfO9bllSfeu+FXu9NvzXs9zPzB2vwPd5+fM53UASpCMz4voW3XAbj6dDz3YXCmoBbNU3w7xwpToDjROvpjz/LpHTcbkTUsom0l6491+vle3/bcGRXhX+T+zq6484aG+PK4w7K6+4/vh47cLTXbjMbKhUKhLdiHQmz5Ff7CNOKQr6/XMkM5Wijgfe+IwDkJ1xEmpCtWXGgUDOwatSJ+U8hJI6t7hypJL9TQTeSxLMqFHPsPKxe3g0XWixMYGmGAcK4wioC9fuNdTBLHxOvAsE89mu8jmW4CWE/ebkGsxdXyFT3AFXTKcabFhWUDSobkJ3NtqldnlEyaSpzPGWV8Is5c/X8UqefIbA9jSJl21tKsY/Gf5rqa4aTXVd2X42R0qnYqa+9LVg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR11MB4882.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(7696005)(38070700005)(316002)(76116006)(33656002)(52536014)(83380400001)(110136005)(66476007)(66946007)(66556008)(2906002)(66446008)(64756008)(38100700002)(508600001)(186003)(86362001)(55016002)(26005)(5660300002)(55236004)(6506007)(8676002)(9686003)(122000001)(53546011)(71200400001)(8936002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?Q7hLaVb6jo93IHVLUrJ2yLfuUFvZDWpPqlq6QKjKPtkelzQujpaCKSqhBkTa?= =?us-ascii?Q?adGrwCx/rLYBsdQH3e+JOJx8XXHqBktr7U5wK+JAbiA9osI0f4kGDZuI3tT5?= =?us-ascii?Q?eyFnybXLjs9p3mtuswE+cunYr6zkH9K3EEV/0TDm9uLNA4Yu8EUVlCVYCCY6?= =?us-ascii?Q?pe+THPyVKsumZFZKN6L+qU+HmcwCxA0P1usjkgTcAZRwFxNR1qNE5KhOm7be?= =?us-ascii?Q?rH3WrGMA1hdkWuQHeBX6qrRbkQSN2OxirAQZ3Y+KxeM5P2Gcxchz+TgpvkN+?= =?us-ascii?Q?y6FvnSbcFLsGauUPJS0/JFl8P1rPmJpOAJTYT2Ljm+v4GsdtKlfiZ637UMXO?= =?us-ascii?Q?l1dPj+KvighX/7jNagwqocxjSxCTvqXZaZ2RVJFQxxeFzuzfbFAHnO1bM7Mv?= =?us-ascii?Q?pPFj7HrW5QTiyEhQEMRacxZ9WR67Oh1OFV9p8Oqw45r1s6US1HS7Tz5kJ476?= =?us-ascii?Q?e+KM1b/f/Xd2PTRdfkPCQZn7CgVRt1/WUeA5VLXEeYPmumjb1hxdhJF548Fg?= =?us-ascii?Q?eX/VOreLvIwva4dn1meFv1N/G9wf1BFBXFbYnQN0Yj2nZhFe/eWuaoXSAl7B?= =?us-ascii?Q?EWva2YijcpUYWT3Z1671WQqFiGqsUDi0P53giYWIgChK1ADmldAK7X8yE6x/?= =?us-ascii?Q?wAXpbuzL4yQhWmghh+3L4v8hcsuZqtFeCfOHl9i0hvw66Lg4CQ6mViUMYZRB?= =?us-ascii?Q?8sIKHWe7RpJsAikOpC/nLO4SwRxwMNbFe5XFcHYMIr9hVCxbeKtvEIlQ29z1?= =?us-ascii?Q?yyzosstHbcfMYXm72+BnzAPM7jm547rr/+GHrfahu5ADpMY0M0EOZyouZfGC?= =?us-ascii?Q?XwdOqSK2YWb1e3YvKRk0od5NYQuHQPHa25ZPpX5nwdx9xyt5Om9NceplGrSy?= =?us-ascii?Q?fQCMLKCXgaJk0dHdLSs9sx/5w0ebG654/7ylJtpAn2duDFNzFPGR+wj1j9o1?= =?us-ascii?Q?NfjSyJ3WtyAnDrCHXQ9BGWHQd5n0UkQq144BBU+sJGCBH6x9GpjVF10axOj/?= =?us-ascii?Q?Edj56pvt+r0S6RSrpQPYVDMvZKA3Ij2Rh822KxL8PNblcEkVIK80IsMNl7S+?= =?us-ascii?Q?cnYJqvmTpiXVwZD+u3H9Rd8HbyTElG0VMqukpDaYu5w6UCHVj3oXiQVa7646?= =?us-ascii?Q?+9LuiRsdVxeD3eFAhe9tNgAbLi4PKk7nS/mY9z+EyhFB+jBYhHS9qE72v2oZ?= =?us-ascii?Q?mWmmAU8s03oOuV+5bcq9pP8AG8SRe8PpEF/rlFCouvd5iJucNvlAdxHvnEyO?= =?us-ascii?Q?AA7dkVcEvOb6fJd/QRcfV9JEEkDX29LHsydcxgnLCx6X/P14n0BodjcJ2c+M?= =?us-ascii?Q?RluWoFmTa2uTKKcQVeTyeETL?= 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: CO1PR11MB4882.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d385721f-58da-4558-087c-08d9876454de X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Oct 2021 18:25:23.7881 (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: 8PqwYXV53Pj/v9gbG1VeoHFaADn81EICN9BupxJ/sbUe9bCttqhq5MIhpcu0Tn/8DplW6DSUVlq7IJWvpOoYUOwunrDGlmr+1eFHra6Az2Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4996 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v4] eventdev/rx-adapter: fix segfault in queue conf get 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 Sender: "dev" Hi Jay, > -----Original Message----- > From: Jayatheerthan, Jay > Sent: 04 October 2021 22:49 > To: Kundapura, Ganapati ; > jerinjacobk@gmail.com; dev@dpdk.org > Subject: RE: [PATCH v4] eventdev/rx-adapter: fix segfault in queue conf g= et >=20 > > -----Original Message----- > > From: Kundapura, Ganapati > > Sent: Friday, October 1, 2021 11:00 AM > > To: jerinjacobk@gmail.com; dev@dpdk.org > > Cc: Jayatheerthan, Jay > > Subject: [PATCH v4] eventdev/rx-adapter: fix segfault in queue conf > > get > > > > rte_event_eth_rx_adapter_queue_conf_get() segfaults if called without > > queue added to the Rx adapter. > > > > Added check to no queues in Rx adapter and error out on being called > > with no queue in Rx adapter. > > > > Added test case to call queue conf get without queues in Rx adapter. > > > > Fixes: b36879759b7f3ce ("eventdev/rx_adapter: support Rx queue config > > get") > > Signed-off-by: Ganapati Kundapura > > > > --- > > v4: > > * Fixed checkpatch warning > > > > v3: > > * Added fixes line > > > > v2: > > * Corrected typo in the comment > > --- > > > > diff --git a/app/test/test_event_eth_rx_adapter.c > > b/app/test/test_event_eth_rx_adapter.c > > index 13664a3..d0dc552 100644 > > --- a/app/test/test_event_eth_rx_adapter.c > > +++ b/app/test/test_event_eth_rx_adapter.c > > @@ -751,20 +751,48 @@ static int > > adapter_queue_conf(void) > > { > > int err; > > - struct rte_event_eth_rx_adapter_queue_conf queue_conf; > > + struct rte_event_eth_rx_adapter_queue_conf queue_conf =3D {0}; > > > > - err =3D rte_event_eth_rx_adapter_queue_conf_get(TEST_INST_ID, > TEST_DEV_ID, > > + /* Case 1: queue conf get without any queues in Rx adapter */ > > + err =3D rte_event_eth_rx_adapter_queue_conf_get(TEST_INST_ID, > > + TEST_ETHDEV_ID, > > + 0, &queue_conf); > > + TEST_ASSERT(err =3D=3D -EINVAL, "Expected -EINVAL got %d", err); > > + > > + /* Add queue to Rx adapter */ > > + queue_conf.ev.queue_id =3D 0; > > + queue_conf.ev.sched_type =3D RTE_SCHED_TYPE_ATOMIC; > > + queue_conf.ev.priority =3D RTE_EVENT_DEV_PRIORITY_NORMAL; > > + > > + err =3D rte_event_eth_rx_adapter_queue_add(TEST_INST_ID, > > + TEST_ETHDEV_ID, > > + 0, &queue_conf); > > + TEST_ASSERT(err =3D=3D 0, "Expected 0 got %d", err); > > + > > + /* Case 2: queue conf get with queue added to Rx adapter */ > > + err =3D rte_event_eth_rx_adapter_queue_conf_get(TEST_INST_ID, > > + TEST_ETHDEV_ID, > > 0, &queue_conf); > > TEST_ASSERT(err =3D=3D 0, "Expected 0 got %d", err); > > > > - err =3D rte_event_eth_rx_adapter_queue_conf_get(TEST_INST_ID, > TEST_DEV_ID, > > + /* Case 3: queue conf get with invalid rx queue id */ > > + err =3D rte_event_eth_rx_adapter_queue_conf_get(TEST_INST_ID, > > + TEST_ETHDEV_ID, > > -1, &queue_conf); >=20 > rx_queue_id param is uint16_t. Would using non-configured queue id (for > e.g. rx_queue_id =3D 2) suffice instead of using -1 ? >=20 When -1 is promoted/demoted to uint16_t, it'll be converted to large value = i.e UINT_MAX and guaranteed to be invalid rx queue id and it's future proof. In case, some queues are added in that test case in future, this invalid rx= _queue_id also needs to be updated. Yes, for this case rx_queue_id=3D2 can be used, but it's not future proof. > > TEST_ASSERT(err =3D=3D -EINVAL, "Expected -EINVAL got %d", err); > > > > - err =3D rte_event_eth_rx_adapter_queue_conf_get(TEST_INST_ID, > TEST_DEV_ID, > > + /* Case 4: queue conf get with NULL queue conf struct */ > > + err =3D rte_event_eth_rx_adapter_queue_conf_get(TEST_INST_ID, > > + TEST_ETHDEV_ID, > > 0, NULL); > > TEST_ASSERT(err =3D=3D -EINVAL, "Expected -EINVAL got %d", err); > > > > + /* Delete queue from the Rx adapter */ > > + err =3D rte_event_eth_rx_adapter_queue_del(TEST_INST_ID, > > + TEST_ETHDEV_ID, > > + 0); > > + TEST_ASSERT(err =3D=3D 0, "Expected 0 got %d", err); > > + > > return TEST_SUCCESS; > > } > > > > diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c > > b/lib/eventdev/rte_event_eth_rx_adapter.c > > index 10491ca..2a84490 100644 > > --- a/lib/eventdev/rte_event_eth_rx_adapter.c > > +++ b/lib/eventdev/rte_event_eth_rx_adapter.c > > @@ -2844,12 +2844,13 @@ > rte_event_eth_rx_adapter_queue_conf_get(uint8_t id, > > return -EINVAL; > > > > dev_info =3D &rx_adapter->eth_devices[eth_dev_id]; > > - queue_info =3D &dev_info->rx_queue[rx_queue_id]; > > - if (!queue_info->queue_enabled) { > > + if (dev_info->rx_queue =3D=3D NULL || > > + !dev_info->rx_queue[rx_queue_id].queue_enabled) { > > RTE_EDEV_LOG_ERR("Rx queue %u not added", > rx_queue_id); > > return -EINVAL; > > } > > > > + queue_info =3D &dev_info->rx_queue[rx_queue_id]; > > qi_ev =3D (struct rte_event *)&queue_info->event; > > > > memset(queue_conf, 0, sizeof(*queue_conf)); > > -- > > 2.6.4