Torsten Duwe bd87c8
From c2a1b91e47984e477298912ffd55570095d67318 Mon Sep 17 00:00:00 2001
Torsten Duwe bd87c8
From: Andre Przywara <andre.przywara@arm.com>
Torsten Duwe bd87c8
Date: Fri, 17 Jun 2022 09:59:44 +0000
Torsten Duwe bd87c8
Subject: [PATCH] crypto: qat - replace get_current_node() with numa_node_id()
Torsten Duwe bd87c8
Git-commit: c2a1b91e47984e477298912ffd55570095d67318
Torsten Duwe bd87c8
Patch-mainline: v6.0-rc1
Torsten Duwe bd87c8
References: jsc#PED-1073
Torsten Duwe bd87c8
Torsten Duwe bd87c8
Currently the QAT driver code uses a self-defined wrapper function
Torsten Duwe bd87c8
called get_current_node() when it wants to learn the current NUMA node.
Torsten Duwe bd87c8
This implementation references the topology_physical_package_id[] array,
Torsten Duwe bd87c8
which more or less coincidentally contains the NUMA node id, at least
Torsten Duwe bd87c8
on x86.
Torsten Duwe bd87c8
Torsten Duwe bd87c8
Because this is not universal, and Linux offers a direct function to
Torsten Duwe bd87c8
learn the NUMA node ID, replace that function with a call to
Torsten Duwe bd87c8
numa_node_id(), which would work everywhere.
Torsten Duwe bd87c8
Torsten Duwe bd87c8
This fixes the QAT driver operation on arm64 machines.
Torsten Duwe bd87c8
Torsten Duwe bd87c8
Reported-by: Yoan Picchi <Yoan.Picchi@arm.com>
Torsten Duwe bd87c8
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Torsten Duwe bd87c8
Signed-off-by: Yoan Picchi <yoan.picchi@arm.com>
Torsten Duwe bd87c8
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Torsten Duwe bd87c8
Signed-off-by: Torsten Duwe <duwe@suse.de>
Torsten Duwe bd87c8
Torsten Duwe bd87c8
---
Torsten Duwe bd87c8
 drivers/crypto/qat/qat_common/adf_common_drv.h | 5 -----
Torsten Duwe bd87c8
 drivers/crypto/qat/qat_common/qat_algs.c       | 4 ++--
Torsten Duwe bd87c8
 drivers/crypto/qat/qat_common/qat_asym_algs.c  | 4 ++--
Torsten Duwe bd87c8
 3 files changed, 4 insertions(+), 9 deletions(-)
Torsten Duwe bd87c8
Torsten Duwe bd87c8
diff --git a/drivers/crypto/qat/qat_common/adf_common_drv.h b/drivers/crypto/qat/qat_common/adf_common_drv.h
Torsten Duwe bd87c8
index 0464fa2579295..b364bc06c732a 100644
Torsten Duwe bd87c8
--- a/drivers/crypto/qat/qat_common/adf_common_drv.h
Torsten Duwe bd87c8
+++ b/drivers/crypto/qat/qat_common/adf_common_drv.h
Torsten Duwe bd87c8
@@ -49,11 +49,6 @@ struct service_hndl {
Torsten Duwe bd87c8
 	struct list_head list;
Torsten Duwe bd87c8
 };
Torsten Duwe bd87c8
 
Torsten Duwe bd87c8
-static inline int get_current_node(void)
Torsten Duwe bd87c8
-{
Torsten Duwe bd87c8
-	return topology_physical_package_id(raw_smp_processor_id());
Torsten Duwe bd87c8
-}
Torsten Duwe bd87c8
-
Torsten Duwe bd87c8
 int adf_service_register(struct service_hndl *service);
Torsten Duwe bd87c8
 int adf_service_unregister(struct service_hndl *service);
Torsten Duwe bd87c8
 
Torsten Duwe bd87c8
diff --git a/drivers/crypto/qat/qat_common/qat_algs.c b/drivers/crypto/qat/qat_common/qat_algs.c
Torsten Duwe bd87c8
index 148edbe379e31..fb45fa83841c5 100644
Torsten Duwe bd87c8
--- a/drivers/crypto/qat/qat_common/qat_algs.c
Torsten Duwe bd87c8
+++ b/drivers/crypto/qat/qat_common/qat_algs.c
Torsten Duwe bd87c8
@@ -605,7 +605,7 @@ static int qat_alg_aead_newkey(struct crypto_aead *tfm, const u8 *key,
Torsten Duwe bd87c8
 {
Torsten Duwe bd87c8
 	struct qat_alg_aead_ctx *ctx = crypto_aead_ctx(tfm);
Torsten Duwe bd87c8
 	struct qat_crypto_instance *inst = NULL;
Torsten Duwe bd87c8
-	int node = get_current_node();
Torsten Duwe bd87c8
+	int node = numa_node_id();
Torsten Duwe bd87c8
 	struct device *dev;
Torsten Duwe bd87c8
 	int ret;
Torsten Duwe bd87c8
 
Torsten Duwe bd87c8
@@ -1065,7 +1065,7 @@ static int qat_alg_skcipher_newkey(struct qat_alg_skcipher_ctx *ctx,
Torsten Duwe bd87c8
 {
Torsten Duwe bd87c8
 	struct qat_crypto_instance *inst = NULL;
Torsten Duwe bd87c8
 	struct device *dev;
Torsten Duwe bd87c8
-	int node = get_current_node();
Torsten Duwe bd87c8
+	int node = numa_node_id();
Torsten Duwe bd87c8
 	int ret;
Torsten Duwe bd87c8
 
Torsten Duwe bd87c8
 	inst = qat_crypto_get_instance_node(node);
Torsten Duwe bd87c8
diff --git a/drivers/crypto/qat/qat_common/qat_asym_algs.c b/drivers/crypto/qat/qat_common/qat_asym_algs.c
Torsten Duwe bd87c8
index 16d97db9ea15f..095ed2a404d2f 100644
Torsten Duwe bd87c8
--- a/drivers/crypto/qat/qat_common/qat_asym_algs.c
Torsten Duwe bd87c8
+++ b/drivers/crypto/qat/qat_common/qat_asym_algs.c
Torsten Duwe bd87c8
@@ -489,7 +489,7 @@ static int qat_dh_init_tfm(struct crypto_kpp *tfm)
Torsten Duwe bd87c8
 {
Torsten Duwe bd87c8
 	struct qat_dh_ctx *ctx = kpp_tfm_ctx(tfm);
Torsten Duwe bd87c8
 	struct qat_crypto_instance *inst =
Torsten Duwe bd87c8
-			qat_crypto_get_instance_node(get_current_node());
Torsten Duwe bd87c8
+			qat_crypto_get_instance_node(numa_node_id());
Torsten Duwe bd87c8
 
Torsten Duwe bd87c8
 	if (!inst)
Torsten Duwe bd87c8
 		return -EINVAL;
Torsten Duwe bd87c8
@@ -1225,7 +1225,7 @@ static int qat_rsa_init_tfm(struct crypto_akcipher *tfm)
Torsten Duwe bd87c8
 {
Torsten Duwe bd87c8
 	struct qat_rsa_ctx *ctx = akcipher_tfm_ctx(tfm);
Torsten Duwe bd87c8
 	struct qat_crypto_instance *inst =
Torsten Duwe bd87c8
-			qat_crypto_get_instance_node(get_current_node());
Torsten Duwe bd87c8
+			qat_crypto_get_instance_node(numa_node_id());
Torsten Duwe bd87c8
 
Torsten Duwe bd87c8
 	if (!inst)
Torsten Duwe bd87c8
 		return -EINVAL;
Torsten Duwe bd87c8
-- 
Torsten Duwe bd87c8
2.35.3
Torsten Duwe bd87c8