* [PATCH v11 1/2] crypto: qce - Only register algos if the user really wants it
2026-10-22 8:57 [PATCH v11 0/2] crypto - qce: make algos optional and remove the BROKEN label Bartosz Golaszewski
@ 2026-10-22 8:57 ` Bartosz Golaszewski
2026-10-22 9:04 ` Konrad Dybcio
2026-10-22 8:58 ` [PATCH v11 2/2] Revert "crypto: qce - Mark QCE as BROKEN" Bartosz Golaszewski
2026-11-02 9:58 ` [PATCH v11 0/2] crypto - qce: make algos optional and remove the BROKEN label Bartosz Golaszewski
2 siblings, 1 reply; 8+ messages in thread
From: Bartosz Golaszewski @ 2026-10-22 8:57 UTC (permalink / raw)
To: Bartosz Golaszewski, Herbert Xu, David S. Miller, Russell King,
Eric Biggers, Demi Marie Obenour, Kuldeep Singh, Pankaj Patil,
Birk Skyum
Cc: linux-crypto, linux-arm-msm, linux-kernel, linux-arm-kernel,
Bartosz Golaszewski, stable
This driver's crypto algorithms still have a few issues that need
addressing which don't currently trigger any self-test failures. For
that reason: don't register the algorithms unless the user really wants
it.
Add a module parameter to the QCE driver that by default causes the
driver to *not* register the crypto algorithms. It will only be one if
the user explicitly passes the do_register_algos argument as true.
The power-management part of the driver is kept as is to allow scaling
down of interconnects gating of clocks by runtime PM.
Cc: stable@vger.kernel.org
Tested-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Tested-by: Pankaj Patil <pankaj.patil@oss.qualcomm.com>
Tested-by: Birk Skyum <birk.skyum@pm.me> # X1E80100, Lenovo Yoga Slim 7x
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
drivers/crypto/qce/core.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c
index bf3c1bc3ba7bde5e5d08e06071c67ba77af95695..5b1bf7a50f88c890da1f0820fb9e070b3d3f4708 100644
--- a/drivers/crypto/qce/core.c
+++ b/drivers/crypto/qce/core.c
@@ -10,6 +10,7 @@
#include <linux/interconnect.h>
#include <linux/interrupt.h>
#include <linux/module.h>
+#include <linux/moduleparam.h>
#include <linux/platform_device.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>
@@ -22,6 +23,9 @@
#include "sha.h"
#include "aead.h"
+static bool do_register_algos;
+module_param(do_register_algos, bool, 0444);
+
#define QCE_QUEUE_LENGTH 1
#define QCE_DEFAULT_MEM_BANDWIDTH 393600
@@ -259,9 +263,11 @@ static int qce_crypto_probe(struct platform_device *pdev)
qce->async_req_enqueue = qce_async_request_enqueue;
qce->async_req_done = qce_async_request_done;
- ret = devm_qce_register_algs(qce);
- if (ret)
- return ret;
+ if (do_register_algos) {
+ ret = devm_qce_register_algs(qce);
+ if (ret)
+ return ret;
+ }
/* Configure autosuspend after successful init */
pm_runtime_set_autosuspend_delay(dev, 100);
--
2.47.3
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH v11 1/2] crypto: qce - Only register algos if the user really wants it
2026-10-22 8:57 ` [PATCH v11 1/2] crypto: qce - Only register algos if the user really wants it Bartosz Golaszewski
@ 2026-10-22 9:04 ` Konrad Dybcio
0 siblings, 0 replies; 8+ messages in thread
From: Konrad Dybcio @ 2026-10-22 9:04 UTC (permalink / raw)
To: Bartosz Golaszewski, Bartosz Golaszewski, Herbert Xu,
David S. Miller, Russell King, Eric Biggers, Demi Marie Obenour,
Kuldeep Singh, Pankaj Patil, Birk Skyum
Cc: linux-crypto, linux-arm-msm, linux-kernel, linux-arm-kernel, stable
On 10/22/26 10:57 AM, Bartosz Golaszewski wrote:
> This driver's crypto algorithms still have a few issues that need
> addressing which don't currently trigger any self-test failures. For
> that reason: don't register the algorithms unless the user really wants
> it.
>
> Add a module parameter to the QCE driver that by default causes the
> driver to *not* register the crypto algorithms. It will only be one if
> the user explicitly passes the do_register_algos argument as true.
>
> The power-management part of the driver is kept as is to allow scaling
> down of interconnects gating of clocks by runtime PM.
>
> Cc: stable@vger.kernel.org
> Tested-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
> Tested-by: Pankaj Patil <pankaj.patil@oss.qualcomm.com>
> Tested-by: Birk Skyum <birk.skyum@pm.me> # X1E80100, Lenovo Yoga Slim 7x
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v11 2/2] Revert "crypto: qce - Mark QCE as BROKEN"
2026-10-22 8:57 [PATCH v11 0/2] crypto - qce: make algos optional and remove the BROKEN label Bartosz Golaszewski
2026-10-22 8:57 ` [PATCH v11 1/2] crypto: qce - Only register algos if the user really wants it Bartosz Golaszewski
@ 2026-10-22 8:58 ` Bartosz Golaszewski
2026-10-22 9:04 ` Konrad Dybcio
2026-11-02 9:58 ` [PATCH v11 0/2] crypto - qce: make algos optional and remove the BROKEN label Bartosz Golaszewski
2 siblings, 1 reply; 8+ messages in thread
From: Bartosz Golaszewski @ 2026-10-22 8:58 UTC (permalink / raw)
To: Bartosz Golaszewski, Herbert Xu, David S. Miller, Russell King,
Eric Biggers, Demi Marie Obenour, Kuldeep Singh, Pankaj Patil,
Birk Skyum
Cc: linux-crypto, linux-arm-msm, linux-kernel, linux-arm-kernel,
Bartosz Golaszewski, stable
The self-tests for this driver have been fixed. The crypto algorithms
are only registered if the user explicitly requests it with the provided
module parameter defaulting to false. There's no reason to further keep
it unbuildable with the BROKEN label so revert commit df373d39c6f0
("crypto: qce - Mark QCE as BROKEN").
While at it: update the Kconfig description by saying this is an
"offloader" and not an "accelerator".
Cc: stable@vger.kernel.org
Fixes: df373d39c6f0 ("crypto: qce - Mark QCE as BROKEN")
Tested-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Tested-by: Pankaj Patil <pankaj.patil@oss.qualcomm.com>
Tested-by: Birk Skyum <birk.skyum@pm.me> # X1E80100, Lenovo Yoga Slim 7x
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
arch/arm/configs/multi_v7_defconfig | 1 +
arch/arm64/configs/defconfig | 1 +
drivers/crypto/Kconfig | 22 +++++++++++++---------
3 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig
index f9b8dbf9318c9d4947e56ef0159311634bf0c1ee..2d6292f8cab39596b540084fbd8b30f4c25cd4ff 100644
--- a/arch/arm/configs/multi_v7_defconfig
+++ b/arch/arm/configs/multi_v7_defconfig
@@ -1323,6 +1323,7 @@ CONFIG_CRYPTO_DEV_ATMEL_AES=m
CONFIG_CRYPTO_DEV_ATMEL_TDES=m
CONFIG_CRYPTO_DEV_ATMEL_SHA=m
CONFIG_CRYPTO_DEV_MARVELL_CESA=m
+CONFIG_CRYPTO_DEV_QCE=m
CONFIG_CRYPTO_DEV_ROCKCHIP=m
CONFIG_CRYPTO_DEV_STM32_HASH=m
CONFIG_CRYPTO_DEV_STM32_CRYP=m
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 6ec8d3a69c98e0da38465010d11166bb0e058f4a..e80927f87ff26fe3f51db6409f509fb99ad614a0 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -1949,6 +1949,7 @@ CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
CONFIG_CRYPTO_DEV_SUN8I_CE=m
CONFIG_CRYPTO_DEV_FSL_CAAM=m
CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m
+CONFIG_CRYPTO_DEV_QCE=m
CONFIG_CRYPTO_DEV_TEGRA=m
CONFIG_CRYPTO_DEV_ZYNQMP_AES=m
CONFIG_CRYPTO_DEV_ZYNQMP_SHA3=m
diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
index 0189dfdcbbe11098ead0ea194293422a31d8fe65..adcbe15851899917fb3039efe89a77c8fe712bf1 100644
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
@@ -527,17 +527,21 @@ source "drivers/crypto/marvell/Kconfig"
source "drivers/crypto/intel/Kconfig"
config CRYPTO_DEV_QCE
- tristate "Qualcomm crypto engine accelerator"
- depends on (BROKEN && ARCH_QCOM) || COMPILE_TEST
+ tristate "Qualcomm crypto engine offloader"
+ depends on ARCH_QCOM || COMPILE_TEST
depends on HAS_IOMEM
help
- This driver supports Qualcomm crypto engine accelerator
- hardware. To compile this driver as a module, choose M here. The
- module will be called qcrypto.
-
- This driver does not have exclusive access to the
- hardware, causing races with the secure world. It
- is also slower than the CPU.
+ This driver supports Qualcomm crypto engine offloader hardware. To
+ compile this driver as a module, choose M here. The module will be
+ called qcrypto.
+
+ NOTE: With qcrypto.do_register_algos module parameter set to true,
+ this driver does not have exclusive access to the hardware, and may
+ cause races with the secure world. It is also *slower* than the
+ CPU for the same algorithms. By default it will not register crypto
+ algorithms and only scale down the interconnect bandwidth and disable
+ the relevant clocks. Use qcrypto.do_register_algos=1 at your own
+ risk!
config CRYPTO_DEV_QCE_SKCIPHER
bool
--
2.47.3
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH v11 2/2] Revert "crypto: qce - Mark QCE as BROKEN"
2026-10-22 8:58 ` [PATCH v11 2/2] Revert "crypto: qce - Mark QCE as BROKEN" Bartosz Golaszewski
@ 2026-10-22 9:04 ` Konrad Dybcio
0 siblings, 0 replies; 8+ messages in thread
From: Konrad Dybcio @ 2026-10-22 9:04 UTC (permalink / raw)
To: Bartosz Golaszewski, Bartosz Golaszewski, Herbert Xu,
David S. Miller, Russell King, Eric Biggers, Demi Marie Obenour,
Kuldeep Singh, Pankaj Patil, Birk Skyum
Cc: linux-crypto, linux-arm-msm, linux-kernel, linux-arm-kernel, stable
On 10/22/26 10:58 AM, Bartosz Golaszewski wrote:
> The self-tests for this driver have been fixed. The crypto algorithms
> are only registered if the user explicitly requests it with the provided
> module parameter defaulting to false. There's no reason to further keep
> it unbuildable with the BROKEN label so revert commit df373d39c6f0
> ("crypto: qce - Mark QCE as BROKEN").
>
> While at it: update the Kconfig description by saying this is an
> "offloader" and not an "accelerator".
>
> Cc: stable@vger.kernel.org
> Fixes: df373d39c6f0 ("crypto: qce - Mark QCE as BROKEN")
> Tested-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
> Tested-by: Pankaj Patil <pankaj.patil@oss.qualcomm.com>
> Tested-by: Birk Skyum <birk.skyum@pm.me> # X1E80100, Lenovo Yoga Slim 7x
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v11 0/2] crypto - qce: make algos optional and remove the BROKEN label
2026-10-22 8:57 [PATCH v11 0/2] crypto - qce: make algos optional and remove the BROKEN label Bartosz Golaszewski
2026-10-22 8:57 ` [PATCH v11 1/2] crypto: qce - Only register algos if the user really wants it Bartosz Golaszewski
2026-10-22 8:58 ` [PATCH v11 2/2] Revert "crypto: qce - Mark QCE as BROKEN" Bartosz Golaszewski
@ 2026-11-02 9:58 ` Bartosz Golaszewski
2026-11-05 8:34 ` Bartosz Golaszewski
2026-11-11 11:00 ` Herbert Xu
2 siblings, 2 replies; 8+ messages in thread
From: Bartosz Golaszewski @ 2026-11-02 9:58 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Herbert Xu, David S. Miller, Russell King, Eric Biggers,
Demi Marie Obenour, Kuldeep Singh, Pankaj Patil, Birk Skyum,
linux-crypto, linux-arm-msm, linux-kernel, linux-arm-kernel,
stable
On Thu, Oct 22, 2026 at 10:57:58AM +0200, Bartosz Golaszewski wrote:
> This is the follow-up to the three smaller series fixing crypto
> self-tests in the QCE driver. It makes the crypto algorithms opt-in via
> a module parameter and removes the BROKEN label so that the driver is
> built by default.
>
> The dependencies are:
> - https://lore.kernel.org/all/20261016-qce-fixes-sha-v1-1-3ee5a30d84f3@oss.qualcomm.com/
> - https://lore.kernel.org/all/20261019-qce-fixes-skcipher-v12-0-046e6be9bd83@oss.qualcomm.com/
> - https://lore.kernel.org/all/20261020-qce-fixes-aead-v12-0-77a2e09abd0c@oss.qualcomm.com/
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
> ---
Hi Herbert!
Gentle ping, can these three series + this one now get queued for v7.4?
The three dependencies have no more sashiko comments. The ones for this
one are minor about missing module params docs so can probably be
ignored or I can send a follow up.
Thanks,
Bartosz
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v11 0/2] crypto - qce: make algos optional and remove the BROKEN label
2026-11-02 9:58 ` [PATCH v11 0/2] crypto - qce: make algos optional and remove the BROKEN label Bartosz Golaszewski
@ 2026-11-05 8:34 ` Bartosz Golaszewski
2026-11-11 11:00 ` Herbert Xu
1 sibling, 0 replies; 8+ messages in thread
From: Bartosz Golaszewski @ 2026-11-05 8:34 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Herbert Xu, David S. Miller, Russell King, Eric Biggers,
Demi Marie Obenour, Kuldeep Singh, Pankaj Patil, Birk Skyum,
linux-crypto, linux-arm-msm, linux-kernel, linux-arm-kernel,
stable
On Mon, Nov 02, 2026 at 10:58:20AM +0100, Bartosz Golaszewski wrote:
> On Thu, Oct 22, 2026 at 10:57:58AM +0200, Bartosz Golaszewski wrote:
> > This is the follow-up to the three smaller series fixing crypto
> > self-tests in the QCE driver. It makes the crypto algorithms opt-in via
> > a module parameter and removes the BROKEN label so that the driver is
> > built by default.
> >
> > The dependencies are:
> > - https://lore.kernel.org/all/20261016-qce-fixes-sha-v1-1-3ee5a30d84f3@oss.qualcomm.com/
> > - https://lore.kernel.org/all/20261019-qce-fixes-skcipher-v12-0-046e6be9bd83@oss.qualcomm.com/
> > - https://lore.kernel.org/all/20261020-qce-fixes-aead-v12-0-77a2e09abd0c@oss.qualcomm.com/
> >
> > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
> > ---
>
> Hi Herbert!
>
> Gentle ping, can these three series + this one now get queued for v7.4?
> The three dependencies have no more sashiko comments. The ones for this
> one are minor about missing module params docs so can probably be
> ignored or I can send a follow up.
>
Hi, another gentle ping since v7.4-rc1 is tagged. Is there anything I
can do to move this forward?
Thanks,
Bartosz
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v11 0/2] crypto - qce: make algos optional and remove the BROKEN label
2026-11-02 9:58 ` [PATCH v11 0/2] crypto - qce: make algos optional and remove the BROKEN label Bartosz Golaszewski
2026-11-05 8:34 ` Bartosz Golaszewski
@ 2026-11-11 11:00 ` Herbert Xu
1 sibling, 0 replies; 8+ messages in thread
From: Herbert Xu @ 2026-11-11 11:00 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Bartosz Golaszewski, David S. Miller, Russell King, Eric Biggers,
Demi Marie Obenour, Kuldeep Singh, Pankaj Patil, Birk Skyum,
linux-crypto, linux-arm-msm, linux-kernel, linux-arm-kernel,
stable
On Mon, Nov 02, 2026 at 10:58:12AM +0100, Bartosz Golaszewski wrote:
> On Thu, Oct 22, 2026 at 10:57:58AM +0200, Bartosz Golaszewski wrote:
> > This is the follow-up to the three smaller series fixing crypto
> > self-tests in the QCE driver. It makes the crypto algorithms opt-in via
> > a module parameter and removes the BROKEN label so that the driver is
> > built by default.
> >
> > The dependencies are:
> > - https://lore.kernel.org/all/20261016-qce-fixes-sha-v1-1-3ee5a30d84f3@oss.qualcomm.com/
> > - https://lore.kernel.org/all/20261019-qce-fixes-skcipher-v12-0-046e6be9bd83@oss.qualcomm.com/
> > - https://lore.kernel.org/all/20261020-qce-fixes-aead-v12-0-77a2e09abd0c@oss.qualcomm.com/
> >
> > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
> > ---
>
> Hi Herbert!
>
> Gentle ping, can these three series + this one now get queued for v7.4?
> The three dependencies have no more sashiko comments. The ones for this
> one are minor about missing module params docs so can probably be
> ignored or I can send a follow up.
Did you miss the Sashiko comments about missing documentation?
Please address them first.
Thanks,
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 8+ messages in thread