| From 385810967386be51275e6d2a362d6c5895eff68f Mon Sep 17 00:00:00 2001 |
| From: Alexander Sverdlin <alexander.sverdlin@nokia.com> |
| 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 <alexander.sverdlin@nokia.com> |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/crypto/qat/qat_common/adf_common_drv.h b/drivers/crypto/qat/qat_common/adf_common_drv.h |
| index 5c4c0a253129..d78f8d5c89c3 100644 |
| --- a/drivers/crypto/qat/qat_common/adf_common_drv.h |
| +++ b/drivers/crypto/qat/qat_common/adf_common_drv.h |
| @@ -95,7 +95,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 |
| |