<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: "IntelOne Text"; font-size: 10pt; color: rgb(0, 0, 0);">
Acked-by: Kai Ji <kai.ji@intel.com></div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Nicolau, Radu <radu.nicolau@intel.com><br>
<b>Sent:</b> 16 April 2026 11:25<br>
<b>To:</b> dev@dpdk.org <dev@dpdk.org><br>
<b>Cc:</b> Nicolau, Radu <radu.nicolau@intel.com>; Ji, Kai <kai.ji@intel.com><br>
<b>Subject:</b> [PATCH] common/qat: add asym crypto disable option</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">The Asymmetric crypto QAT PMD can now be disabled independently.<br>
<br>
Example:<br>
meson setup build -Ddisable_drivers=crypto/qat/asym<br>
<br>
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com><br>
---<br>
 drivers/common/qat/meson.build                | 23 ++++++++++++++++---<br>
 drivers/crypto/qat/{ => asym}/qat_asym.c      |  0<br>
 drivers/crypto/qat/{ => asym}/qat_asym.h      |  0<br>
 drivers/crypto/qat/dev/qat_asym_pmd_gen1.c    |  2 ++<br>
 drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c  |  2 ++<br>
 drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c  |  2 ++<br>
 drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c  |  6 +++++<br>
 drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c  |  2 ++<br>
 .../crypto/qat/dev/qat_crypto_pmd_gen_lce.c   |  2 ++<br>
 drivers/crypto/qat/qat_crypto.c               |  6 ++++-<br>
 10 files changed, 41 insertions(+), 4 deletions(-)<br>
 rename drivers/crypto/qat/{ => asym}/qat_asym.c (100%)<br>
 rename drivers/crypto/qat/{ => asym}/qat_asym.h (100%)<br>
<br>
diff --git a/drivers/common/qat/meson.build b/drivers/common/qat/meson.build<br>
index 31e06f4376..7f12f2b09d 100644<br>
--- a/drivers/common/qat/meson.build<br>
+++ b/drivers/common/qat/meson.build<br>
@@ -13,6 +13,9 @@ qat_crypto_relpath = '../../' + qat_crypto_path<br>
 qat_compress = true<br>
 qat_compress_path = 'compress/qat'<br>
 qat_compress_relpath = '../../' + qat_compress_path<br>
+qat_crypto_asym = true<br>
+qat_crypto_asym_path = 'crypto/qat/asym'<br>
+qat_crypto_asym_relpath = '../../' + qat_crypto_asym_path<br>
 <br>
 if disable_drivers.contains(qat_crypto_path)<br>
     qat_crypto = false<br>
@@ -26,6 +29,12 @@ if disable_drivers.contains(qat_compress_path)<br>
     set_variable('drv_' + qat_compress_path.underscorify() + '_disable_reason',<br>
             'Explicitly disabled via build config')<br>
 endif<br>
+if disable_drivers.contains(qat_crypto_asym_path)<br>
+    qat_crypto_asym = false<br>
+    dpdk_drvs_disabled += qat_crypto_asym_path<br>
+    set_variable('drv_' + qat_crypto_asym_path.underscorify() + '_disable_reason',<br>
+            'Explicitly disabled via build config')<br>
+endif<br>
 <br>
 libcrypto = dependency('libcrypto', required: false, method: 'pkg-config')<br>
 <br>
@@ -88,6 +97,7 @@ sources += files(<br>
 includes += include_directories(<br>
         'qat_adf',<br>
         qat_crypto_relpath,<br>
+        qat_crypto_asym_relpath,<br>
         qat_compress_relpath,<br>
 )<br>
 <br>
@@ -108,9 +118,8 @@ cflags += no_shadow_cflag<br>
 <br>
 if qat_crypto<br>
     foreach f: ['qat_sym.c', 'qat_sym_session.c',<br>
-            'qat_asym.c', 'qat_crypto.c',<br>
+            'qat_crypto.c',<br>
             'dev/qat_sym_pmd_gen1.c',<br>
-            'dev/qat_asym_pmd_gen1.c',<br>
             'dev/qat_crypto_pmd_gen2.c',<br>
             'dev/qat_crypto_pmd_gen3.c',<br>
             'dev/qat_crypto_pmd_gen4.c',<br>
@@ -119,6 +128,14 @@ if qat_crypto<br>
         ]<br>
         sources += files(join_paths(qat_crypto_relpath, f))<br>
     endforeach<br>
+    cflags += '-DBUILD_QAT_SYM'<br>
+    if qat_crypto_asym<br>
+        foreach f: ['asym/qat_asym.c',<br>
+                    'dev/qat_asym_pmd_gen1.c',<br>
+            ]<br>
+            sources += files(join_paths(qat_crypto_relpath, f))<br>
+        endforeach<br>
+        cflags += '-DBUILD_QAT_ASYM'<br>
+    endif<br>
     deps += ['security']<br>
-    cflags += ['-DBUILD_QAT_SYM', '-DBUILD_QAT_ASYM']<br>
 endif<br>
diff --git a/drivers/crypto/qat/qat_asym.c b/drivers/crypto/qat/asym/qat_asym.c<br>
similarity index 100%<br>
rename from drivers/crypto/qat/qat_asym.c<br>
rename to drivers/crypto/qat/asym/qat_asym.c<br>
diff --git a/drivers/crypto/qat/qat_asym.h b/drivers/crypto/qat/asym/qat_asym.h<br>
similarity index 100%<br>
rename from drivers/crypto/qat/qat_asym.h<br>
rename to drivers/crypto/qat/asym/qat_asym.h<br>
diff --git a/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c b/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c<br>
index 20001bd1cc..c96608dd37 100644<br>
--- a/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c<br>
+++ b/drivers/crypto/qat/dev/qat_asym_pmd_gen1.c<br>
@@ -112,6 +112,7 @@ qat_asym_crypto_set_session_gen1(void *cdev __rte_unused,<br>
         return 0;<br>
 }<br>
 <br>
+#ifdef BUILD_QAT_ASYM<br>
 RTE_INIT(qat_asym_crypto_gen1_init)<br>
 {<br>
         qat_asym_gen_dev_ops[QAT_GEN1].cryptodev_ops =<br>
@@ -121,3 +122,4 @@ RTE_INIT(qat_asym_crypto_gen1_init)<br>
         qat_asym_gen_dev_ops[QAT_GEN1].get_feature_flags =<br>
                         qat_asym_crypto_feature_flags_get_gen1;<br>
 }<br>
+#endif<br>
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c<br>
index f20d367404..89c51c8f80 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen2.c<br>
@@ -336,6 +336,7 @@ RTE_INIT(qat_sym_crypto_gen2_init)<br>
                         qat_sym_create_security_gen1;<br>
 }<br>
 <br>
+#ifdef BUILD_QAT_ASYM<br>
 RTE_INIT(qat_asym_crypto_gen2_init)<br>
 {<br>
         qat_asym_gen_dev_ops[QAT_GEN2].cryptodev_ops =<br>
@@ -347,3 +348,4 @@ RTE_INIT(qat_asym_crypto_gen2_init)<br>
         qat_asym_gen_dev_ops[QAT_GEN2].set_session =<br>
                         qat_asym_crypto_set_session_gen1;<br>
 }<br>
+#endif<br>
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c<br>
index c196cf3cdb..91546046f1 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen3.c<br>
@@ -800,6 +800,7 @@ RTE_INIT(qat_sym_crypto_gen3_init)<br>
                         qat_sym_create_security_gen1;<br>
 }<br>
 <br>
+#ifdef BUILD_QAT_ASYM<br>
 RTE_INIT(qat_asym_crypto_gen3_init)<br>
 {<br>
         qat_asym_gen_dev_ops[QAT_GEN3].cryptodev_ops =<br>
@@ -811,3 +812,4 @@ RTE_INIT(qat_asym_crypto_gen3_init)<br>
         qat_asym_gen_dev_ops[QAT_GEN3].set_session =<br>
                         qat_asym_crypto_set_session_gen1;<br>
 }<br>
+#endif<br>
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c<br>
index 52577f6907..41cad29142 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen4.c<br>
@@ -115,6 +115,7 @@ static struct rte_cryptodev_capabilities qat_sym_crypto_caps_gen4[] = {<br>
         RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()<br>
 };<br>
 <br>
+#ifdef BUILD_QAT_ASYM<br>
 static struct rte_cryptodev_capabilities qat_asym_crypto_caps_gen4[] = {<br>
         QAT_ASYM_CAP(MODEX,<br>
                 0, 1, 512, 1),<br>
@@ -159,6 +160,7 @@ static struct rte_cryptodev_capabilities qat_asym_crypto_caps_gen4[] = {<br>
                         64, 512, 64),<br>
         RTE_CRYPTODEV_END_OF_CAPABILITIES_LIST()<br>
 };<br>
+#endif<br>
 <br>
 static int<br>
 qat_sym_crypto_cap_get_gen4(struct qat_cryptodev_private *internals,<br>
@@ -202,6 +204,7 @@ qat_sym_crypto_cap_get_gen4(struct qat_cryptodev_private *internals,<br>
         return 0;<br>
 }<br>
 <br>
+#ifdef BUILD_QAT_ASYM<br>
 static int<br>
 qat_asym_crypto_cap_get_gen4(struct qat_cryptodev_private *internals,<br>
                         const char *capa_memz_name,<br>
@@ -239,6 +242,7 @@ qat_asym_crypto_cap_get_gen4(struct qat_cryptodev_private *internals,<br>
 <br>
         return 0;<br>
 }<br>
+#endif<br>
 <br>
 static __rte_always_inline void<br>
 enqueue_one_aead_job_gen4(struct qat_sym_session *ctx,<br>
@@ -622,6 +626,7 @@ RTE_INIT(qat_sym_crypto_gen4_init)<br>
                         qat_sym_create_security_gen1;<br>
 }<br>
 <br>
+#ifdef BUILD_QAT_ASYM<br>
 RTE_INIT(qat_asym_crypto_gen4_init)<br>
 {<br>
         qat_asym_gen_dev_ops[QAT_VQAT].cryptodev_ops =<br>
@@ -637,3 +642,4 @@ RTE_INIT(qat_asym_crypto_gen4_init)<br>
                 qat_asym_gen_dev_ops[QAT_GEN4].set_session =<br>
                         qat_asym_crypto_set_session_gen1;<br>
 }<br>
+#endif<br>
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c<br>
index 5714420e1e..2680116d6e 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen5.c<br>
@@ -224,6 +224,7 @@ RTE_INIT(qat_sym_crypto_gen5_init)<br>
                         qat_sym_create_security_gen1;<br>
 }<br>
 <br>
+#ifdef BUILD_QAT_ASYM<br>
 RTE_INIT(qat_asym_crypto_gen5_init)<br>
 {<br>
         qat_asym_gen_dev_ops[QAT_GEN5].cryptodev_ops =<br>
@@ -235,3 +236,4 @@ RTE_INIT(qat_asym_crypto_gen5_init)<br>
         qat_asym_gen_dev_ops[QAT_GEN5].set_session =<br>
                         qat_asym_crypto_set_session_gen1;<br>
 }<br>
+#endif<br>
diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gen_lce.c b/drivers/crypto/qat/dev/qat_crypto_pmd_gen_lce.c<br>
index 7298916f2a..ec075bbf68 100644<br>
--- a/drivers/crypto/qat/dev/qat_crypto_pmd_gen_lce.c<br>
+++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gen_lce.c<br>
@@ -301,6 +301,7 @@ RTE_INIT(qat_sym_crypto_gen_lce_init)<br>
         qat_sym_gen_dev_ops[QAT_GEN_LCE].get_feature_flags = qat_sym_crypto_feature_flags_get_gen1;<br>
 }<br>
 <br>
+#ifdef BUILD_QAT_ASYM<br>
 RTE_INIT(qat_asym_crypto_gen_lce_init)<br>
 {<br>
         qat_asym_gen_dev_ops[QAT_GEN_LCE].cryptodev_ops = NULL;<br>
@@ -308,3 +309,4 @@ RTE_INIT(qat_asym_crypto_gen_lce_init)<br>
         qat_asym_gen_dev_ops[QAT_GEN_LCE].get_feature_flags = NULL;<br>
         qat_asym_gen_dev_ops[QAT_GEN_LCE].set_session = NULL;<br>
 }<br>
+#endif<br>
diff --git a/drivers/crypto/qat/qat_crypto.c b/drivers/crypto/qat/qat_crypto.c<br>
index 861679373b..daa36c5eed 100644<br>
--- a/drivers/crypto/qat/qat_crypto.c<br>
+++ b/drivers/crypto/qat/qat_crypto.c<br>
@@ -53,9 +53,11 @@ qat_cryptodev_info_get(struct rte_cryptodev *dev,<br>
                         qat_qps_per_service(qat_dev, service_type);<br>
                 info->feature_flags = dev->feature_flags;<br>
                 info->capabilities = qat_private->qat_dev_capabilities;<br>
+<br>
+#ifdef BUILD_QAT_ASYM<br>
                 if (service_type == QAT_SERVICE_ASYMMETRIC)<br>
                         info->driver_id = qat_asym_driver_id;<br>
-<br>
+#endif<br>
                 if (service_type == QAT_SERVICE_SYMMETRIC)<br>
                         info->driver_id = qat_sym_driver_id;<br>
                 /* No limit of number of sessions */<br>
@@ -168,8 +170,10 @@ qat_cryptodev_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,<br>
         for (i = 0; i < qp->nb_descriptors; i++) {<br>
                 if (service_type == QAT_SERVICE_SYMMETRIC)<br>
                         qat_sym_init_op_cookie(qp->op_cookies[i]);<br>
+#ifdef BUILD_QAT_ASYM<br>
                 else<br>
                         qat_asym_init_op_cookie(qp->op_cookies[i]);<br>
+#endif<br>
         }<br>
 <br>
         if (qat_private->cipher_crc_offload_enable) {<br>
-- <br>
2.52.0<br>
<br>
</div>
</span></font></div>
</body>
</html>