From patchwork Fri Jun 30 08:34:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Power, Ciara" X-Patchwork-Id: 129148 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 AE75842D94; Fri, 30 Jun 2023 10:34:48 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8818E406B5; Fri, 30 Jun 2023 10:34:48 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id E670D4021F for ; Fri, 30 Jun 2023 10:34:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1688114087; x=1719650087; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=d6wh3wOfrkq902ajvhVfi+EqU4kUG0CyF0XMYT2wGHE=; b=JQ+JKHa3lsWhFVCaBx0r+dBtYNDGfh35rYO+g5V7SUWsjzodgxDu7rTb Ac6Em6rci16eG3v+w+cN106T5+VHJT4KdmHKOpxZPxNjUxJXpkIMK0ESK Kdcmjaz2qfuclfyaUAtR9sS8HqB3EmKeoS0Y9aYpGobBKB0XXm3zhbjw0 HWu7t7YeR1rM1GstBJxnYk4pVCa46v7SXDHCmV33QR71mSWxz7xL02dF2 tKwaQXSzDDU48lIMgc00I5HJRUT6iD3cjj8SeKp1XQUhOeHYV9HJWY8Z8 xTRPethKA7O7fJ4cdZu12415WhIMAnR6T1fsxLZ7EB3o+ZGPUqxKoijri g==; X-IronPort-AV: E=McAfee;i="6600,9927,10756"; a="361193048" X-IronPort-AV: E=Sophos;i="6.01,170,1684825200"; d="scan'208";a="361193048" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2023 01:34:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10756"; a="752926735" X-IronPort-AV: E=Sophos;i="6.01,170,1684825200"; d="scan'208";a="752926735" Received: from silpixa00400355.ir.intel.com (HELO silpixa00400355.ger.corp.intel.com) ([10.237.222.80]) by orsmga001.jf.intel.com with ESMTP; 30 Jun 2023 01:34:44 -0700 From: Ciara Power To: dev@dpdk.org Cc: kai.ji@intel.com, Ciara Power , pablo.de.lara.guarch@intel.com Subject: [PATCH] drivers/ipsec_mb: fix aesni_mb set session ID Date: Fri, 30 Jun 2023 08:34:41 +0000 Message-Id: <20230630083441.429989-1-ciara.power@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 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 In the case of multiprocess, when the same session is being used for both primary and secondary processes, the session ID will be the same. However the pointers are not available to the secondary process, so in this case when the session was created by a different process ID, then copy the template session to the job again. Fixes: 0fb4834e00af ("crypto/ipsec_mb: set and use session ID") Cc: pablo.de.lara.guarch@intel.com Signed-off-by: Ciara Power Acked-by: Kai Ji > Acked-by: Pablo de Lara --- drivers/crypto/ipsec_mb/pmd_aesni_mb.c | 8 +++++++- drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/ipsec_mb/pmd_aesni_mb.c b/drivers/crypto/ipsec_mb/pmd_aesni_mb.c index f4322d9af4..555b59621d 100644 --- a/drivers/crypto/ipsec_mb/pmd_aesni_mb.c +++ b/drivers/crypto/ipsec_mb/pmd_aesni_mb.c @@ -2,6 +2,8 @@ * Copyright(c) 2015-2021 Intel Corporation */ +#include + #include "pmd_aesni_mb_priv.h" struct aesni_mb_op_buf_data { @@ -847,6 +849,7 @@ aesni_mb_session_configure(IMB_MGR *mb_mgr, #if IMB_VERSION(1, 3, 0) < IMB_VERSION_NUM sess->session_id = imb_set_session(mb_mgr, &sess->template_job); + sess->pid = getpid(); #endif return 0; @@ -1482,7 +1485,10 @@ set_mb_job_params(IMB_JOB *job, struct ipsec_mb_qp *qp, session->template_job.cipher_mode; #if IMB_VERSION(1, 3, 0) < IMB_VERSION_NUM - if (job->session_id != session->session_id) + if (session->pid != getpid()) { + memcpy(job, &session->template_job, sizeof(IMB_JOB)); + imb_set_session(mb_mgr, job); + } else if (job->session_id != session->session_id) #endif memcpy(job, &session->template_job, sizeof(IMB_JOB)); diff --git a/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h b/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h index 4ffbe4b282..3f6cf30c39 100644 --- a/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h +++ b/drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h @@ -854,6 +854,8 @@ struct aesni_mb_session { /*< Template job structure */ uint32_t session_id; /*< IPSec MB session ID */ + pid_t pid; + /*< Process ID that created session */ struct { uint16_t offset; } iv;