From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C36C6A04A2 for ; Tue, 12 May 2020 05:49:01 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6E0EB1C0D7; Tue, 12 May 2020 05:49:01 +0200 (CEST) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20047.outbound.protection.outlook.com [40.107.2.47]) by dpdk.org (Postfix) with ESMTP id 610941C06D; Tue, 12 May 2020 05:48:59 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L02ylRcOuHNGr8j46mYw1RIBeIcACRyqTxCC3U/ewyn8uQijUiChbiM2nGs4iO0zgNvSHgJeqJqPW4tMU/iPmObBfgg7ASPhMLUU06i4wp5pinwDwc5bPriqpivgJuo1UO2oJ2XhnYZGX9jXaBaS465CGRbJZ4aHDEvMstFMiqisB5/xa+DbJVuHc4zKavC/5fI5PvALH94J6oDexhdSB41DPFBb/1/udvBjuPdiitgrhDvRYBVHoNmASb2cUexWNfVSNPA5OkA53RbMjLXVag0nmy+6/LzIoBXisUJMZwgYAQCfSwPViVKX23HWBNb1dcYSCu0xOq9qC30fQai0IQ== 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-SenderADCheck; bh=Z/PjbkXvmydISNUvrG00g5wb+CwKiSDmvyL490BtqKI=; b=Sh9VKwPVmXrKvxoDm8Mu5z72phNrUdFMuJRPZacB0eY8PLnsSVqkU0cI7vlbe76g2SZtrL+sVw9SINRlGEs9bDynauBzxBXMmdpaN/+yZC0gHdkyVdBTyIT+/UTWgBiK5UkahGKxha7k1tJmC++PzB9J94IKLeB4JSGUOJsQv9gz+ZRwKb5p4tnOZVrF1ly3i7muupedKe1QZdokznHtqD3L2qd5ZFUtRPBu5TlF6od9+2R1HqxYUha6Z6WoaPX1txwqtv3rAvvHQrUwd3tz2nnxefb/A+ONaknl9NMo4RId7uZpiDT5FgGA7gKMkNpLhAjuqqNKEO19gFkNtYp+3Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z/PjbkXvmydISNUvrG00g5wb+CwKiSDmvyL490BtqKI=; b=VrvH9EwcmfYoV0QFPTKAMvpas/oXUIA2YWb3n/n7NaSpoGEVwjhW7QXYS3ZGNvPztM3tPxTjGaW/YQxJTNDF1iuJvM46zQvIPu0W29kUoJ483wC+6JixUoEXmm1d3WLbOTiNB9uXH5uICP5Tjr+mNj/AWmPQ8UIdmdalkhZjPro= Received: from VI1PR04MB6960.eurprd04.prod.outlook.com (2603:10a6:803:12d::10) by VI1PR04MB3999.eurprd04.prod.outlook.com (2603:10a6:803:48::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.28; Tue, 12 May 2020 03:48:58 +0000 Received: from VI1PR04MB6960.eurprd04.prod.outlook.com ([fe80::dd6:d975:588f:1c1c]) by VI1PR04MB6960.eurprd04.prod.outlook.com ([fe80::dd6:d975:588f:1c1c%3]) with mapi id 15.20.2979.033; Tue, 12 May 2020 03:48:57 +0000 From: Gagandeep Singh To: wangyunjian , "dev@dpdk.org" CC: Hemant Agrawal , "jerry.lilijun@huawei.com" , "xudingke@huawei.com" , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v2] crypto/caam_jr: fix wrong check of fd Thread-Index: AQHWJ03x1MJHFZ/+60apzbPWDpz6P6ijzlEw Date: Tue, 12 May 2020 03:48:57 +0000 Message-ID: References: <1589171838-18076-1-git-send-email-wangyunjian@huawei.com> In-Reply-To: <1589171838-18076-1-git-send-email-wangyunjian@huawei.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: huawei.com; dkim=none (message not signed) header.d=none;huawei.com; dmarc=none action=none header.from=nxp.com; x-originating-ip: [106.211.72.7] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 92f0df4b-257b-487e-4217-08d7f6276677 x-ms-traffictypediagnostic: VI1PR04MB3999:|VI1PR04MB3999: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3968; x-forefront-prvs: 0401647B7F x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KRIlDvANPkIBrrKbUpccJE7cTIXEOcwvRZfI/aheqXkTocZQ8aks78URYby9U3Jbk7sGhnmtAiOWYwfjcIwNpjwCHwYE5boJSbrneg4Ig71eOvPwA4gzooLZXZbCAJHzRcWl8DYqga+XCkaStxpvZchjCxjCsQtfQlpLnoUxdCrA1YUhKpUHzj0w1tmihwpQYyfIfakBbVyvjdbFFG3rqZQyHQVj+I4E+JdgZPoEHB4KgiXAdG4IJnEbP+SH5dc4Zx8b/OHoFyJQ6IlS5xavNeRpfzNvSrsN1Flx6PRMr8cCAZlB1/9Muwa6DKQLEWW0bYxIaRp4oodmKW9WJCCuKzulOZHSmt8Zqbt159/7QQaiUN4veAL/mz5eNBTN/MNSQiYyu2t2Yfjiv8oY4If2ePVsMfDCGoHnVKxANtrQ2G1CTUa+4hNJm0V4ekmPHRuiwsmrohfZCXPnU0/VRauu1NHfNA19LMgNtygKJpSXBblXDZavq6jFJjjJU3h5G6AdAbGII1eVXkGnc8oqE96y+Q== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB6960.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(136003)(39860400002)(366004)(376002)(346002)(33430700001)(7696005)(9686003)(4326008)(66946007)(55016002)(52536014)(66476007)(66556008)(33656002)(2906002)(64756008)(66446008)(86362001)(76116006)(8936002)(6506007)(53546011)(55236004)(26005)(71200400001)(316002)(8676002)(186003)(110136005)(54906003)(5660300002)(33440700001)(478600001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: yu2pzRHkJD6GzEw6x1XGF1ECXKU/fNmEb1JoJXCF6Fof3H2hB6KkBChT+TGZn9GnFTw1s5YZlQYVgtmKp6CkrTAAk9X9GppTSk1tIKeWVunqAGPcgXs6HRhraNwHeb2i2dPL/VBA8DpagDqgt5gOdeitss+zqGAmsILGDA9tM6kUGFR17yn4EXlWneHTkWQara94eGe9vVJLYk82wGGz9UlPZUb0Y0AMafKEMq0s42RrdSxcRONRnPkCIHPoZfRCzB0/rPbZo1rICATmrS2kjSGMRQJ6kFK368NAsMzqtE4lAvIFB/IFUP6PZx2knu3tAKozSliDN4lPz1/Pq5HRczLTSQEFjv43CfUPCYhNBU2QZdU9phvWxuGXtobKDlQWYuPP9c9rFIowc7eWvAgpuRv5UaK2rAXqWmmb6h5Jb3nRNEmU9qiV0RKV03i6UgBKx+EcH7HXSENEA1WiqiRAkS8oQihLWOrrCVaoJIBwdPU= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92f0df4b-257b-487e-4217-08d7f6276677 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 May 2020 03:48:57.7741 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GrPih9F4ywR3F43ogoHqaIYphij8+OSIx/Xq40jfldGa5glomHITiYg3hH1cWN7c X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3999 Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH v2] crypto/caam_jr: fix wrong check of fd X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" > -----Original Message----- > From: wangyunjian > Sent: Monday, May 11, 2020 10:07 AM > To: dev@dpdk.org > Cc: Gagandeep Singh ; Hemant Agrawal > ; jerry.lilijun@huawei.com; > xudingke@huawei.com; Yunjian Wang ; > stable@dpdk.org > Subject: [dpdk-dev] [PATCH v2] crypto/caam_jr: fix wrong check of fd >=20 > From: Yunjian Wang >=20 > Zero is a valid fd. It will fail to check the fd if the fd is zero. > The "job_ring->uio_fd" is an fd, so define it as "int". >=20 > Fixes: e7a45f3cc245 ("crypto/caam_jr: add UIO specific operations") > Fixes: a5e1018d5e67 ("crypto/caam_jr: add routines to configure HW") > Cc: stable@dpdk.org >=20 > Signed-off-by: Yunjian Wang > --- > v2: > * Change "job_ring->uio_fd" type suggested by Gagandeep Singh > --- > drivers/crypto/caam_jr/caam_jr.c | 6 ++++-- > drivers/crypto/caam_jr/caam_jr_hw_specific.h | 2 +- > drivers/crypto/caam_jr/caam_jr_pvt.h | 5 +++-- > drivers/crypto/caam_jr/caam_jr_uio.c | 21 ++++++++++++++------ > 4 files changed, 23 insertions(+), 11 deletions(-) >=20 > diff --git a/drivers/crypto/caam_jr/caam_jr.c > b/drivers/crypto/caam_jr/caam_jr.c > index 5a29dd169..f62d46546 100644 > --- a/drivers/crypto/caam_jr/caam_jr.c > +++ b/drivers/crypto/caam_jr/caam_jr.c > @@ -2074,7 +2074,7 @@ static struct rte_security_ops caam_jr_security_ops= =3D > { > static void > close_job_ring(struct sec_job_ring_t *job_ring) > { > - if (job_ring->irq_fd) { > + if (job_ring->irq_fd !=3D -1) { > /* Producer index is frozen. If consumer index is not equal > * with producer index, then we have descs to flush. > */ > @@ -2187,7 +2187,7 @@ caam_jr_dev_uninit(struct rte_cryptodev *dev) > * > */ > static void * > -init_job_ring(void *reg_base_addr, uint32_t irq_id) > +init_job_ring(void *reg_base_addr, int irq_id) > { > struct sec_job_ring_t *job_ring =3D NULL; > int i, ret =3D 0; > @@ -2466,6 +2466,8 @@ > RTE_PMD_REGISTER_CRYPTO_DRIVER(caam_jr_crypto_drv, > cryptodev_caam_jr_drv.driver, >=20 > RTE_INIT(caam_jr_init_log) > { > + sec_init(); > + Why are you calling a fd initialization function in log registration constr= uctor? This is not the right place for any initialization other than logs. Also, sec_init function will not work here, as you are using "g_uio_jr_num= " whose value will always be 0 during this function call. > caam_jr_logtype =3D rte_log_register("pmd.crypto.caam"); > if (caam_jr_logtype >=3D 0) > rte_log_set_level(caam_jr_logtype, RTE_LOG_NOTICE); > diff --git a/drivers/crypto/caam_jr/caam_jr_hw_specific.h > b/drivers/crypto/caam_jr/caam_jr_hw_specific.h > index 5f58a585d..ec4539d1b 100644 > --- a/drivers/crypto/caam_jr/caam_jr_hw_specific.h > +++ b/drivers/crypto/caam_jr/caam_jr_hw_specific.h > @@ -360,7 +360,7 @@ struct sec_job_ring_t { > * bitwise operations. > */ >=20 > - uint32_t irq_fd; /* The file descriptor used for polling from > + int irq_fd; /* The file descriptor used for polling from > * user space for interrupts notifications > */ > uint32_t jr_mode; /* Model used by SEC Driver to receive > diff --git a/drivers/crypto/caam_jr/caam_jr_pvt.h > b/drivers/crypto/caam_jr/caam_jr_pvt.h > index 98cd4438a..fa9e86ea6 100644 > --- a/drivers/crypto/caam_jr/caam_jr_pvt.h > +++ b/drivers/crypto/caam_jr/caam_jr_pvt.h > @@ -216,16 +216,17 @@ calc_chksum(void *buffer, int len) > } > struct uio_job_ring { > uint32_t jr_id; > - uint32_t uio_fd; > + int uio_fd; > void *register_base_addr; > int map_size; > int uio_minor_number; > }; >=20 > int sec_cleanup(void); > +void sec_init(void); > int sec_configure(void); > struct uio_job_ring *config_job_ring(void); > -void free_job_ring(uint32_t uio_fd); > +void free_job_ring(int uio_fd); >=20 > /* For Dma memory allocation of specified length and alignment */ > static inline void * > diff --git a/drivers/crypto/caam_jr/caam_jr_uio.c > b/drivers/crypto/caam_jr/caam_jr_uio.c > index b1bb44ca4..133b32084 100644 > --- a/drivers/crypto/caam_jr/caam_jr_uio.c > +++ b/drivers/crypto/caam_jr/caam_jr_uio.c > @@ -145,7 +145,7 @@ file_read_first_line(const char root[], const char > subdir[], > "%s/%s/%s", root, subdir, filename); >=20 > fd =3D open(absolute_file_name, O_RDONLY); > - SEC_ASSERT(fd > 0, fd, "Error opening file %s", > + SEC_ASSERT(fd >=3D 0, fd, "Error opening file %s", > absolute_file_name); >=20 > /* read UIO device name from first line in file */ > @@ -322,7 +322,7 @@ uio_map_registers(int uio_device_fd, int uio_device_i= d, > } >=20 > void > -free_job_ring(uint32_t uio_fd) > +free_job_ring(int uio_fd) > { > struct uio_job_ring *job_ring =3D NULL; > int i; Please update the check "if (!uio_fd)". > @@ -347,7 +347,7 @@ free_job_ring(uint32_t uio_fd) > job_ring->jr_id, job_ring->uio_fd); > close(job_ring->uio_fd); > g_uio_jr_num--; > - job_ring->uio_fd =3D 0; > + job_ring->uio_fd =3D -1; > if (job_ring->register_base_addr =3D=3D NULL) > return; >=20 > @@ -370,7 +370,7 @@ uio_job_ring *config_job_ring(void) > int i; >=20 > for (i =3D 0; i < MAX_SEC_JOB_RINGS; i++) { > - if (g_uio_job_ring[i].uio_fd =3D=3D 0) { > + if (g_uio_job_ring[i].uio_fd =3D=3D -1) { > job_ring =3D &g_uio_job_ring[i]; > g_uio_jr_num++; > break; > @@ -389,7 +389,7 @@ uio_job_ring *config_job_ring(void) >=20 > /* Open device file */ > job_ring->uio_fd =3D open(uio_device_file_name, O_RDWR); > - SEC_ASSERT(job_ring->uio_fd > 0, NULL, > + SEC_ASSERT(job_ring->uio_fd >=3D 0, NULL, > "Failed to open UIO device file for job ring %d", > job_ring->jr_id); >=20 > @@ -488,12 +488,21 @@ sec_cleanup(void) > /* I need to close the fd after shutdown UIO commands need to > be > * sent using the fd > */ > - if (job_ring->uio_fd !=3D 0) { > + if (job_ring->uio_fd !=3D -1) { > CAAM_JR_INFO( > "Closed device file for job ring %d , fd =3D %d", > job_ring->jr_id, job_ring->uio_fd); > close(job_ring->uio_fd); > + job_ring->uio_fd =3D -1; > } > } > return 0; > } > + > +void sec_init(void) > +{ > + int i; > + > + for (i =3D 0; i < g_uio_jr_num; i++) > + g_uio_job_ring[i].uio_fd =3D -1; > +} > -- > 2.19.1 >=20 There are still some functions(sec_uio_send_command, caam_jr_enable_irqs, c= aam_jr_disable_irqs) in caam_jr_uio.c, which are accepting uio_fd parameter= as uint32_t, please update them also.