From patchwork Wed Sep 20 13:33:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 131741 X-Patchwork-Delegate: gakhil@marvell.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2AC70425EA; Wed, 20 Sep 2023 15:36:48 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 239AB42E01; Wed, 20 Sep 2023 15:34:47 +0200 (CEST) Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2041.outbound.protection.outlook.com [40.107.104.41]) by mails.dpdk.org (Postfix) with ESMTP id 7361342DFA for ; Wed, 20 Sep 2023 15:34:45 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RKpdo/XBR/NxMKMSNeZbscw9dliJDJDZUgK5hZt5EB9SIsXYGKZwIKL2sYNAZ5q+Wu3ntGg1r3DUGwcmjlTMpe6S5CseinMO4lcdA+mne+7l3PnoWU1uTNNdXRiicXuYYw/38V8Qm8xISsSFXRncuM3tlhgHx0Tixzk3/VHqDqWWn1hDq0+7YIboZ1/Tt6fluZ4vc1xxkifThjRSDxI57u1PNUhauaIeykcCe0rPwTRGvut9+/wd1z80lOdLX6OWSFyIw67394TNL6KGtz9CmERbutH/GoWKFMg/DzaarcO4VG2fN5/ljQaa3a7k8wjvkLyOAm6+Pv9jVKHX3xejGQ== 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=QW2ZvzLgl/C920MdLFKKuHKMvzM+0lbBpgp8tIRB1QE=; b=hybSOAGy/lDGOd5g2iesDPpb8e3Cz+oiXJJl/fZilICxQ28P6AIpBSC8AoP46Z75L8Q6Hfx1SjKGepYG6fFRyD/sJ21BEA06fo0ODaQvAJ5deRUZkntopWdexAV2T230e6IMQAABScvt/Kx/ujP2sulI5tl9PTqYJ9TltqEK8QFU3nL7YGOgXK68jWK6uGriU6Mx6t8Y13vT1fdr7KzrRJezPWY7UJ1aLoDP2MNwzKre0kWizJtBF3ntewxHUEba3qCZWhdx0V+YEJemMYLXUHrU+OfKayVdyPp/BigmHhSTRCJd9fuH0kqP90lRmJN8nvQTRaBEea8wDkW/ZKyW7Q== 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=QW2ZvzLgl/C920MdLFKKuHKMvzM+0lbBpgp8tIRB1QE=; b=GlsFMPVKeefrGjyRR4Wfjkh/Y6u7uQvOFhjgWaNnzyAMo4efTopXqtlUUV2Sj9OowoAmBJPxD2AEkMFWThtjTOTWzNtirkNVJp20oN8UtBQoQxXQmQYyrumFQxFLMaG7/kp4uWfug+XLRWlmxJ0aKallE/X/UJkUc0zBly90L70= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15) by AS8PR04MB7606.eurprd04.prod.outlook.com (2603:10a6:20b:23e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.27; Wed, 20 Sep 2023 13:34:30 +0000 Received: from PAXPR04MB9328.eurprd04.prod.outlook.com ([fe80::450d:89ac:4f6a:6ae2]) by PAXPR04MB9328.eurprd04.prod.outlook.com ([fe80::450d:89ac:4f6a:6ae2%4]) with mapi id 15.20.6792.021; Wed, 20 Sep 2023 13:34:30 +0000 From: Hemant Agrawal To: gakhil@marvell.com Cc: dev@dpdk.org, Apeksha Gupta Subject: [PATCH v2 07/13] crypto/dpaa2_sec: enhance dpaa FD FL FMT offset set Date: Wed, 20 Sep 2023 19:03:57 +0530 Message-Id: <20230920133403.6420-8-hemant.agrawal@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230920133403.6420-1-hemant.agrawal@nxp.com> References: <20230823070855.27532-1-hemant.agrawal@nxp.com> <20230920133403.6420-1-hemant.agrawal@nxp.com> X-ClientProxiedBy: SI2PR01CA0015.apcprd01.prod.exchangelabs.com (2603:1096:4:191::15) To PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9328:EE_|AS8PR04MB7606:EE_ X-MS-Office365-Filtering-Correlation-Id: eb40682b-c026-4ce7-0d9d-08dbb9de51aa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EE48ivqb+/hXKl18YTJHimodprQcYRaf0cV2PDCYUk4o20dnELCrCFCw9EW/PN8luGkNZ/r9uUlf7GT707bgwFPAO2e5Cf/+OIBN5+/IiZ1raSR4FkqiOr9S6v8G/cXT17QWknalPCdhwtbzHZM3FZQR3oCv3kIKM4PHTEc/D4RVb3TkhVdqHQ0GInPqs8Abs4U2SYu3/ktaTFv6j7iVUuxD6QTaq+t6AoQM1Pe3opRrmMl4VAwa/UHMe+1qNwUEmGvH9ojexFodPMywywk8qujZRDvvu7gJD9kxlhgSYtY0IP5XHt6yQx7FxfXJsA2swzgb4MmHKD0kbXUMCd8FzJ9x3C8GApbz09ajnRIXwPxJXiLISwf/FaNQM/8+YzvXKguI+yGRzxiOEi2TYIIDhM9z+IceOSaT2VdFQ8GChZ1iVUmqNorEMAKFF+R7vhijfjurFBVeUiQYNBDMVRva+ogBpnn36REgu8JyOv9Siv3mrvzwU8CkgsAsdGuaq+0Vtfj90N0yNNBENUIqnqWnSlLJwc01IVYd/sG3GWJp1Dk+5JlfKJcBpJrqeex9WV3PTRlMlCDlenUW3X8xx8ND3yqqhWMbmI2FcRsxkaOsETWocdk0ekHhGSFRTngogLt8 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR04MB9328.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(366004)(136003)(376002)(346002)(39860400002)(451199024)(186009)(1800799009)(6506007)(52116002)(6666004)(6512007)(478600001)(26005)(6486002)(4326008)(2616005)(30864003)(41300700001)(5660300002)(2906002)(66946007)(66476007)(66556008)(8676002)(83380400001)(8936002)(6916009)(44832011)(316002)(1076003)(86362001)(36756003)(38100700002)(38350700002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UQhcMK7UA09RqsVZlwWZwHQ5+P1p78llzlCjAgfpKPqdATS2HkKLpjo+RghmUwHl5ULRuodqqvQrwS481I3avl8NJl31bATk2W8QQ1d79wjTL0baBSXgMJ51wR8DcVeM/fZcYJSHqQ/4qMtDUaUo5AYcpMzJdzKN9F1ir0VcnwNSWUpYRq3ZQWtNF2KsUU4a1ZOQmkdh0SDyuNRqEQLbTpglbCkF199JdPRNuYkkVsj47zaneEZCuaGug9vG39+a0JVbKjFPs/abtmjHfzrSlzpLHAv5vXjYYHL5ljsfyDK/7OhtBYQd9oYb7ExJpGHrdSAXyKZS1cqqsgGAH63AfWso9U4bo6z/qagZYnESgbawVSP6ewy/ik41a1nMtabNwlE42cGjTssaKyJyMQ1lMEIKsOSw+q3ZvWqvNMUOiEGrWXVob5yzk/UJKb6y1NI6F1zYgUq6bakU9ToPi40PFLCIYIGednGxjAz1jnMx7WkZRHMxgE6rGcWidbrrIZvfx6wQV3xcL/5n4/uBA7PRR6OP+9arAJ7PaaE1lId2UuXVFTXaHfKmIHSYMeW+is/DGDMevtIGFvP7jjAClLoDdzh/QB5PVsqfklCCEb58llnoXU3SN0Li2j/DVcHICiEE5dbjsHJcjYJIj8v3zFBlM7KZV7bgtDcBBPcyx8jXN7ym1ENm77KsR79zRI4Ui1ScuUD79kWk5VPkQ2ZEYMr60tGl3nB1CndUZ8ftcop0FPkvnEpQTgxSJmynISCIgoVfEGcJle6bDNSY49UQ69GRulrwg3XJyT2AgebXtO/4vqZYahcEXs5rR3/fofPx7ujhNsl7w4gQI4GQD3jX6/QzD43+8Yh/SpPVtK5avrINzP4yRUYUeaxSkC8ljJf8J0hqGZnm5sw+c17IOsxi9KHKXt1UPXwq+QrPysDdpFK53kvmrIrVnkr7GWPbht8PuPlQxQxh2AUXrL6ih4cwYwI6Fo6tIfRS5TD62POVXcGJjeu6+PhFvLi7/7UJXkJa6C6YYEYGm0yvyAo8SqlwCQgF0HcINVEx0aYA4xNstNkRYp9jecYKDdCCyVgM0gmwS7/U/BhfeJqAXNEIR2wp8O+Ohq7GeyLMhh/RM2BRP1K8IKpmJWwC0/BFEW+eh7POlIDGV7g0QkIYWVikOzueW2tW8FdaXt20QYAc03RJq6dsAnxq5S6m2S//9VwHP6LGn3IaEJ0oky5GlBcUjxNTEmca0NEEIQ+Q168+ZOUekSd3Z5xp7c8qpoiijTj5dCW+flYxT5VI2UN2vTkLpQZNjsYHQ7jJIyZSduC73KAyB5bWSyTGJMlYgRnMxm1MkChnvjLP1lJdrTg9RaQ5cAhzVl67cEBykrEYJXOGTTdE225ygdTxW2u2tMD6qYIGbUe0WVJSjA+wwW/As9MwMlgSFk/dOipsgTqc9HA4gdmqooZXnj9uodOWwikwjCgMTtBmz2/u/SbmX6W8zzhoVLbhKrjQ9lLJCIKyPcLD2ues00Tgdz2LR6962suT8dGvNE+fgCcRYKBMYazXMWaDQnOInPDi1u97esnDh2eYs2qgy93hJg/ieNwi8IX/fww625C0Ih4iXK7HuPVSlKagtcrCAmOjSA== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: eb40682b-c026-4ce7-0d9d-08dbb9de51aa X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9328.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2023 13:34:30.8414 (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: Qs46IXl9oNIAEJRWvrMc2Ago4hmzT+FracoDruoeBjv+PRqUWirWAkuA6ro4231Ae42ekES2GjJFrN2isToLRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB7606 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 From: Apeksha Gupta The macro DPAA2_SET_FLE_OFFSET(fle, offset) only works for masking the offset upto with 12 bits. When the offset value is more that 12 bits, this macro may over writing the FMT/SL/F bits which are beyond the offset bits. The FLE_ADDR is modified to FLE_ADDR + OFFSET, and the FLE_OFFSET is made to 0. Signed-off-by: Apeksha Gupta --- drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 87 +++++++-------------- drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c | 47 +++-------- drivers/net/dpaa2/dpaa2_rxtx.c | 3 +- 3 files changed, 38 insertions(+), 99 deletions(-) diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c index 1fc0d2e7cc..daa6a71360 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c @@ -138,16 +138,14 @@ build_proto_compound_sg_fd(dpaa2_sec_session *sess, DPAA2_SET_FLE_ADDR(op_fle, DPAA2_VADDR_TO_IOVA(sge)); /* Configure Output SGE for Encap/Decap */ - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf)); /* o/p segs */ while (mbuf->next) { sge->length = mbuf->data_len; out_len += sge->length; sge++; mbuf = mbuf->next; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf)); } /* using buf_len for last buf - so that extra data can be added */ sge->length = mbuf->buf_len - mbuf->data_off; @@ -165,8 +163,7 @@ build_proto_compound_sg_fd(dpaa2_sec_session *sess, DPAA2_SET_FLE_FIN(ip_fle); /* Configure input SGE for Encap/Decap */ - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf)); sge->length = mbuf->data_len; in_len += sge->length; @@ -174,8 +171,7 @@ build_proto_compound_sg_fd(dpaa2_sec_session *sess, /* i/p segs */ while (mbuf) { sge++; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf)); sge->length = mbuf->data_len; in_len += sge->length; mbuf = mbuf->next; @@ -247,13 +243,11 @@ build_proto_compound_fd(dpaa2_sec_session *sess, DPAA2_SET_FD_FLC(fd, DPAA2_VADDR_TO_IOVA(flc)); /* Configure Output FLE with dst mbuf data */ - DPAA2_SET_FLE_ADDR(op_fle, DPAA2_MBUF_VADDR_TO_IOVA(dst_mbuf)); - DPAA2_SET_FLE_OFFSET(op_fle, dst_mbuf->data_off); + DPAA2_SET_FLE_ADDR(op_fle, rte_pktmbuf_iova(dst_mbuf)); DPAA2_SET_FLE_LEN(op_fle, dst_mbuf->buf_len); /* Configure Input FLE with src mbuf data */ - DPAA2_SET_FLE_ADDR(ip_fle, DPAA2_MBUF_VADDR_TO_IOVA(src_mbuf)); - DPAA2_SET_FLE_OFFSET(ip_fle, src_mbuf->data_off); + DPAA2_SET_FLE_ADDR(ip_fle, rte_pktmbuf_iova(src_mbuf)); DPAA2_SET_FLE_LEN(ip_fle, src_mbuf->pkt_len); DPAA2_SET_FD_LEN(fd, ip_fle->length); @@ -373,16 +367,14 @@ build_authenc_gcm_sg_fd(dpaa2_sec_session *sess, sym_op->aead.data.length; /* Configure Output SGE for Encap/Decap */ - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off + sym_op->aead.data.offset); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf) + sym_op->aead.data.offset); sge->length = mbuf->data_len - sym_op->aead.data.offset; mbuf = mbuf->next; /* o/p segs */ while (mbuf) { sge++; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf)); sge->length = mbuf->data_len; mbuf = mbuf->next; } @@ -420,17 +412,14 @@ build_authenc_gcm_sg_fd(dpaa2_sec_session *sess, sge++; } - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, sym_op->aead.data.offset + - mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf) + sym_op->aead.data.offset); sge->length = mbuf->data_len - sym_op->aead.data.offset; mbuf = mbuf->next; /* i/p segs */ while (mbuf) { sge++; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf)); sge->length = mbuf->data_len; mbuf = mbuf->next; } @@ -535,8 +524,7 @@ build_authenc_gcm_fd(dpaa2_sec_session *sess, DPAA2_SET_FLE_SG_EXT(fle); /* Configure Output SGE for Encap/Decap */ - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(dst)); - DPAA2_SET_FLE_OFFSET(sge, dst->data_off + sym_op->aead.data.offset); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(dst) + sym_op->aead.data.offset); sge->length = sym_op->aead.data.length; if (sess->dir == DIR_ENC) { @@ -571,9 +559,7 @@ build_authenc_gcm_fd(dpaa2_sec_session *sess, sge++; } - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(sym_op->m_src)); - DPAA2_SET_FLE_OFFSET(sge, sym_op->aead.data.offset + - sym_op->m_src->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(sym_op->m_src) + sym_op->aead.data.offset); sge->length = sym_op->aead.data.length; if (sess->dir == DIR_DEC) { sge++; @@ -666,16 +652,14 @@ build_authenc_sg_fd(dpaa2_sec_session *sess, sym_op->cipher.data.length; /* Configure Output SGE for Encap/Decap */ - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off + sym_op->auth.data.offset); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf) + sym_op->auth.data.offset); sge->length = mbuf->data_len - sym_op->auth.data.offset; mbuf = mbuf->next; /* o/p segs */ while (mbuf) { sge++; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf)); sge->length = mbuf->data_len; mbuf = mbuf->next; } @@ -706,17 +690,14 @@ build_authenc_sg_fd(dpaa2_sec_session *sess, sge->length = sess->iv.length; sge++; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, sym_op->auth.data.offset + - mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf) + sym_op->auth.data.offset); sge->length = mbuf->data_len - sym_op->auth.data.offset; mbuf = mbuf->next; /* i/p segs */ while (mbuf) { sge++; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf)); sge->length = mbuf->data_len; mbuf = mbuf->next; } @@ -830,9 +811,7 @@ build_authenc_fd(dpaa2_sec_session *sess, DPAA2_SET_FLE_SG_EXT(fle); /* Configure Output SGE for Encap/Decap */ - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(dst)); - DPAA2_SET_FLE_OFFSET(sge, sym_op->cipher.data.offset + - dst->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(dst) + sym_op->cipher.data.offset); sge->length = sym_op->cipher.data.length; if (sess->dir == DIR_ENC) { @@ -862,9 +841,7 @@ build_authenc_fd(dpaa2_sec_session *sess, sge->length = sess->iv.length; sge++; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(sym_op->m_src)); - DPAA2_SET_FLE_OFFSET(sge, sym_op->auth.data.offset + - sym_op->m_src->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(sym_op->m_src) + sym_op->auth.data.offset); sge->length = sym_op->auth.data.length; if (sess->dir == DIR_DEC) { sge++; @@ -965,8 +942,7 @@ static inline int build_auth_sg_fd( sge++; } /* i/p 1st seg */ - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, data_offset + mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf) + data_offset); if (data_len <= (mbuf->data_len - data_offset)) { sge->length = data_len; @@ -978,8 +954,7 @@ static inline int build_auth_sg_fd( while ((data_len = data_len - sge->length) && (mbuf = mbuf->next)) { sge++; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf)); if (data_len > mbuf->data_len) sge->length = mbuf->data_len; else @@ -1097,8 +1072,7 @@ build_auth_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op, } /* Setting data to authenticate */ - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(sym_op->m_src)); - DPAA2_SET_FLE_OFFSET(sge, data_offset + sym_op->m_src->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(sym_op->m_src) + data_offset); sge->length = data_len; if (sess->dir == DIR_DEC) { @@ -1183,16 +1157,14 @@ build_cipher_sg_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op, DPAA2_SET_FLE_SG_EXT(op_fle); /* o/p 1st seg */ - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, data_offset + mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf) + data_offset); sge->length = mbuf->data_len - data_offset; mbuf = mbuf->next; /* o/p segs */ while (mbuf) { sge++; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf)); sge->length = mbuf->data_len; mbuf = mbuf->next; } @@ -1212,22 +1184,19 @@ build_cipher_sg_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op, /* i/p IV */ DPAA2_SET_FLE_ADDR(sge, DPAA2_VADDR_TO_IOVA(iv_ptr)); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sess->iv.length; sge++; /* i/p 1st seg */ - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, data_offset + mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf) + data_offset); sge->length = mbuf->data_len - data_offset; mbuf = mbuf->next; /* i/p segs */ while (mbuf) { sge++; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(mbuf)); - DPAA2_SET_FLE_OFFSET(sge, mbuf->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(mbuf)); sge->length = mbuf->data_len; mbuf = mbuf->next; } @@ -1328,8 +1297,7 @@ build_cipher_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op, sess->iv.length, sym_op->m_src->data_off); - DPAA2_SET_FLE_ADDR(fle, DPAA2_MBUF_VADDR_TO_IOVA(dst)); - DPAA2_SET_FLE_OFFSET(fle, data_offset + dst->data_off); + DPAA2_SET_FLE_ADDR(fle, rte_pktmbuf_iova(dst) + data_offset); fle->length = data_len + sess->iv.length; @@ -1349,8 +1317,7 @@ build_cipher_fd(dpaa2_sec_session *sess, struct rte_crypto_op *op, sge->length = sess->iv.length; sge++; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(sym_op->m_src)); - DPAA2_SET_FLE_OFFSET(sge, data_offset + sym_op->m_src->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(sym_op->m_src) + data_offset); sge->length = data_len; DPAA2_SET_FLE_FIN(sge); diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c index 36c79e450a..4754b9d6f8 100644 --- a/drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c +++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c @@ -95,29 +95,25 @@ build_raw_dp_chain_fd(uint8_t *drv_ctx, /* OOP */ if (dest_sgl) { /* Configure Output SGE for Encap/Decap */ - DPAA2_SET_FLE_ADDR(sge, dest_sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, ofs.ofs.cipher.head); + DPAA2_SET_FLE_ADDR(sge, dest_sgl->vec[0].iova + ofs.ofs.cipher.head); sge->length = dest_sgl->vec[0].len - ofs.ofs.cipher.head; /* o/p segs */ for (i = 1; i < dest_sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, dest_sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = dest_sgl->vec[i].len; } sge->length -= ofs.ofs.cipher.tail; } else { /* Configure Output SGE for Encap/Decap */ - DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, ofs.ofs.cipher.head); + DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova + ofs.ofs.cipher.head); sge->length = sgl->vec[0].len - ofs.ofs.cipher.head; /* o/p segs */ for (i = 1; i < sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sgl->vec[i].len; } sge->length -= ofs.ofs.cipher.tail; @@ -148,14 +144,12 @@ build_raw_dp_chain_fd(uint8_t *drv_ctx, sge->length = sess->iv.length; sge++; - DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, ofs.ofs.auth.head); + DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova + ofs.ofs.auth.head); sge->length = sgl->vec[0].len - ofs.ofs.auth.head; for (i = 1; i < sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sgl->vec[i].len; } @@ -244,28 +238,24 @@ build_raw_dp_aead_fd(uint8_t *drv_ctx, /* OOP */ if (dest_sgl) { /* Configure Output SGE for Encap/Decap */ - DPAA2_SET_FLE_ADDR(sge, dest_sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, ofs.ofs.cipher.head); + DPAA2_SET_FLE_ADDR(sge, dest_sgl->vec[0].iova + ofs.ofs.cipher.head); sge->length = dest_sgl->vec[0].len - ofs.ofs.cipher.head; /* o/p segs */ for (i = 1; i < dest_sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, dest_sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = dest_sgl->vec[i].len; } } else { /* Configure Output SGE for Encap/Decap */ - DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, ofs.ofs.cipher.head); + DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova + ofs.ofs.cipher.head); sge->length = sgl->vec[0].len - ofs.ofs.cipher.head; /* o/p segs */ for (i = 1; i < sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sgl->vec[i].len; } } @@ -299,15 +289,13 @@ build_raw_dp_aead_fd(uint8_t *drv_ctx, sge++; } - DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, ofs.ofs.cipher.head); + DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova + ofs.ofs.cipher.head); sge->length = sgl->vec[0].len - ofs.ofs.cipher.head; /* i/p segs */ for (i = 1; i < sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sgl->vec[i].len; } @@ -412,8 +400,7 @@ build_raw_dp_auth_fd(uint8_t *drv_ctx, sge++; } /* i/p 1st seg */ - DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, data_offset); + DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova + data_offset); if (data_len <= (int)(sgl->vec[0].len - data_offset)) { sge->length = data_len; @@ -423,7 +410,6 @@ build_raw_dp_auth_fd(uint8_t *drv_ctx, for (i = 1; i < sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sgl->vec[i].len; } } @@ -502,14 +488,12 @@ build_raw_dp_proto_fd(uint8_t *drv_ctx, if (dest_sgl) { /* Configure Output SGE for Encap/Decap */ DPAA2_SET_FLE_ADDR(sge, dest_sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = dest_sgl->vec[0].len; out_len += sge->length; /* o/p segs */ for (i = 1; i < dest_sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, dest_sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = dest_sgl->vec[i].len; out_len += sge->length; } @@ -518,14 +502,12 @@ build_raw_dp_proto_fd(uint8_t *drv_ctx, } else { /* Configure Output SGE for Encap/Decap */ DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sgl->vec[0].len; out_len += sge->length; /* o/p segs */ for (i = 1; i < sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sgl->vec[i].len; out_len += sge->length; } @@ -545,14 +527,12 @@ build_raw_dp_proto_fd(uint8_t *drv_ctx, /* Configure input SGE for Encap/Decap */ DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sgl->vec[0].len; in_len += sge->length; /* i/p segs */ for (i = 1; i < sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sgl->vec[i].len; in_len += sge->length; } @@ -638,28 +618,24 @@ build_raw_dp_cipher_fd(uint8_t *drv_ctx, /* OOP */ if (dest_sgl) { /* o/p 1st seg */ - DPAA2_SET_FLE_ADDR(sge, dest_sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, data_offset); + DPAA2_SET_FLE_ADDR(sge, dest_sgl->vec[0].iova + data_offset); sge->length = dest_sgl->vec[0].len - data_offset; /* o/p segs */ for (i = 1; i < dest_sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, dest_sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = dest_sgl->vec[i].len; } } else { /* o/p 1st seg */ - DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, data_offset); + DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova + data_offset); sge->length = sgl->vec[0].len - data_offset; /* o/p segs */ for (i = 1; i < sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sgl->vec[i].len; } } @@ -678,21 +654,18 @@ build_raw_dp_cipher_fd(uint8_t *drv_ctx, /* i/p IV */ DPAA2_SET_FLE_ADDR(sge, iv->iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sess->iv.length; sge++; /* i/p 1st seg */ - DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova); - DPAA2_SET_FLE_OFFSET(sge, data_offset); + DPAA2_SET_FLE_ADDR(sge, sgl->vec[0].iova + data_offset); sge->length = sgl->vec[0].len - data_offset; /* i/p segs */ for (i = 1; i < sgl->num; i++) { sge++; DPAA2_SET_FLE_ADDR(sge, sgl->vec[i].iova); - DPAA2_SET_FLE_OFFSET(sge, 0); sge->length = sgl->vec[i].len; } DPAA2_SET_FLE_FIN(sge); diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c index 85910bbd8f..23f7c4132d 100644 --- a/drivers/net/dpaa2/dpaa2_rxtx.c +++ b/drivers/net/dpaa2/dpaa2_rxtx.c @@ -471,8 +471,7 @@ eth_mbuf_to_sg_fd(struct rte_mbuf *mbuf, sge = &sgt[i]; /*Resetting the buffer pool id and offset field*/ sge->fin_bpid_offset = 0; - DPAA2_SET_FLE_ADDR(sge, DPAA2_MBUF_VADDR_TO_IOVA(cur_seg)); - DPAA2_SET_FLE_OFFSET(sge, cur_seg->data_off); + DPAA2_SET_FLE_ADDR(sge, rte_pktmbuf_iova(cur_seg)); sge->length = cur_seg->data_len; if (RTE_MBUF_DIRECT(cur_seg)) { /* if we are using inline SGT in same buffers