diff --git a/kernel-modules/qat17/centos/qat17.spec b/kernel-modules/qat17/centos/qat17.spec index d7fc4492..deb5650a 100644 --- a/kernel-modules/qat17/centos/qat17.spec +++ b/kernel-modules/qat17/centos/qat17.spec @@ -38,6 +38,7 @@ Source2: qat_service #Patch1: 0001-Install-config-file-for-each-VF.patch Patch2: Get-and-report-the-return-code-on-firmware-load-fail.patch +Patch3: crypto-qat-Silence-smp_processor_id-warning.patch %description Intel(r) QuickAssist Technology API @@ -54,6 +55,7 @@ fi #%patch1 -p1 %patch2 -p1 +%patch3 -p1 %build diff --git a/kernel-modules/qat17/files/crypto-qat-Silence-smp_processor_id-warning.patch b/kernel-modules/qat17/files/crypto-qat-Silence-smp_processor_id-warning.patch new file mode 100644 index 00000000..6891eb1e --- /dev/null +++ b/kernel-modules/qat17/files/crypto-qat-Silence-smp_processor_id-warning.patch @@ -0,0 +1,70 @@ +From 5d3c6cab1726c79855561327b65a19ab982891e5 Mon Sep 17 00:00:00 2001 +From: Alexander Sverdlin +Date: Tue, 23 Jul 2019 07:24:01 +0000 +Subject: [PATCH] crypto: qat - Silence smp_processor_id() warning + +[ commit 1b82feb6c5e1996513d0fb0bbb475417088b4954 upstream ] + +It seems that smp_processor_id() is only used for a best-effort +load-balancing, refer to qat_crypto_get_instance_node(). It's not feasible +to disable preemption for the duration of the crypto requests. Therefore, +just silence the warning. This commit is similar to e7a9b05ca4 +("crypto: cavium - Fix smp_processor_id() warnings"). + +Silences the following splat: +BUG: using smp_processor_id() in preemptible [00000000] code: cryptomgr_test/2904 +caller is qat_alg_ablkcipher_setkey+0x300/0x4a0 [intel_qat] +CPU: 1 PID: 2904 Comm: cryptomgr_test Tainted: P O 4.14.69 #1 +... +Call Trace: + dump_stack+0x5f/0x86 + check_preemption_disabled+0xd3/0xe0 + qat_alg_ablkcipher_setkey+0x300/0x4a0 [intel_qat] + skcipher_setkey_ablkcipher+0x2b/0x40 + __test_skcipher+0x1f3/0xb20 + ? cpumask_next_and+0x26/0x40 + ? find_busiest_group+0x10e/0x9d0 + ? preempt_count_add+0x49/0xa0 + ? try_module_get+0x61/0xf0 + ? crypto_mod_get+0x15/0x30 + ? __kmalloc+0x1df/0x1f0 + ? __crypto_alloc_tfm+0x116/0x180 + ? crypto_skcipher_init_tfm+0xa6/0x180 + ? crypto_create_tfm+0x4b/0xf0 + test_skcipher+0x21/0xa0 + alg_test_skcipher+0x3f/0xa0 + alg_test.part.6+0x126/0x2a0 + ? finish_task_switch+0x21b/0x260 + ? __schedule+0x1e9/0x800 + ? __wake_up_common+0x8d/0x140 + cryptomgr_test+0x40/0x50 + kthread+0xff/0x130 + ? cryptomgr_notify+0x540/0x540 + ? kthread_create_on_node+0x70/0x70 + ret_from_fork+0x24/0x50 + +Fixes: ed8ccaef52 ("crypto: qat - Add support for SRIOV") +Cc: stable@vger.kernel.org +Signed-off-by: Alexander Sverdlin +Signed-off-by: Herbert Xu +Signed-off-by: zhao.shuai +--- + quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h b/quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h +index 35f0f44..d0ff355 100644 +--- a/quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h ++++ b/quickassist/qat/drivers/crypto/qat/qat_common/adf_common_drv.h +@@ -100,7 +100,7 @@ struct service_hndl { + + static inline int get_current_node(void) + { +- return topology_physical_package_id(smp_processor_id()); ++ return topology_physical_package_id(raw_smp_processor_id()); + } + + int adf_service_register(struct service_hndl *service); +-- +2.7.4 +