* [PATCH v3] tee: remove TZMEM_MODE_GENERIC
@ 2026-08-07 17:50 Julian Braha
2026-08-07 18:33 ` Arnd Bergmann
2026-08-07 19:05 ` Nathan Chancellor
0 siblings, 2 replies; 3+ messages in thread
From: Julian Braha @ 2026-08-07 17:50 UTC (permalink / raw)
To: amirreza.zarrabi, jenswi
Cc: sumit.garg, arnd, geert+renesas, amirreza.zarrabi, op-tee,
linux-kernel, quic_eberman, andersson, brgl, harshal.dev, nathan,
nsc, jani.nikula, kees, Julian Braha
'select' does not work on config options in a 'choice', so currently it is
possible to enable QCOMTEE without QCOM_TZMEM_MODE_SHMBRIDGE, even though
this is needed at runtime.
There are no users of the generic allocator option,
QCOM_TZMEM_MODE_GENERIC, so let's remove it. Then, we can remove the
containing choice..endchoice, which allows the 'select' to work as
intended.
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Julian Braha <julianbraha@gmail.com>
---
Changes since v2:
- add back stubs for when CONFIG_QCOM_TZMEM_MODE_GENERIC=n
- updated help text accordingly
Link:
https://lore.kernel.org/all/20260729203845.387239-1-julianbraha@gmail.com/
Changes since v1:
- remove TZMEM_MODE_GENERIC instead of removing the dead select
Link:
https://lore.kernel.org/all/20260715092539.18384-1-julianbraha@gmail.com/
---
drivers/firmware/qcom/Kconfig | 26 +++++---------------------
drivers/firmware/qcom/qcom_tzmem.c | 4 ++--
2 files changed, 7 insertions(+), 23 deletions(-)
diff --git a/drivers/firmware/qcom/Kconfig b/drivers/firmware/qcom/Kconfig
index c7f8413ab996..95b968d88dc3 100644
--- a/drivers/firmware/qcom/Kconfig
+++ b/drivers/firmware/qcom/Kconfig
@@ -34,33 +34,17 @@ config QCOM_TZMEM
tristate
select GENERIC_ALLOCATOR
-choice
- prompt "TrustZone interface memory allocator mode"
- depends on QCOM_TZMEM
- default QCOM_TZMEM_MODE_GENERIC
- help
- Selects the mode of the memory allocator providing memory buffers of
- suitable format for sharing with the TrustZone. If in doubt, select
- 'Generic'.
-
-config QCOM_TZMEM_MODE_GENERIC
- bool "Generic"
- help
- Use the generic allocator mode. The memory is page-aligned, non-cachable
- and physically contiguous.
-
config QCOM_TZMEM_MODE_SHMBRIDGE
- bool "SHM Bridge"
+ bool "TrustZone interface memory allocator: SHM Bridge"
+ depends on QCOM_TZMEM
help
- Use Qualcomm Shared Memory Bridge. The memory has the same alignment as
- in the 'Generic' allocator but is also explicitly marked as an SHM Bridge
- buffer.
+ Use Qualcomm Shared Memory Bridge as memory allocator. The memory has the
+ same alignment as in the 'Generic' allocator, which is used when this option
+ is disabled, but is also explicitly marked as an SHM Bridge buffer.
With this selected, all buffers passed to the TrustZone must be allocated
using the TZMem allocator or else the TrustZone will refuse to use them.
-endchoice
-
config QCOM_QSEECOM
bool "Qualcomm QSEECOM interface driver"
depends on QCOM_SCM=y
diff --git a/drivers/firmware/qcom/qcom_tzmem.c b/drivers/firmware/qcom/qcom_tzmem.c
index 0fd9581275f1..510474902c3a 100644
--- a/drivers/firmware/qcom/qcom_tzmem.c
+++ b/drivers/firmware/qcom/qcom_tzmem.c
@@ -50,7 +50,7 @@ static struct device *qcom_tzmem_dev;
static RADIX_TREE(qcom_tzmem_chunks, GFP_ATOMIC);
static DEFINE_SPINLOCK(qcom_tzmem_chunks_lock);
-#if IS_ENABLED(CONFIG_QCOM_TZMEM_MODE_GENERIC)
+#ifndef CONFIG_QCOM_TZMEM_MODE_SHMBRIDGE
static int qcom_tzmem_init(void)
{
@@ -67,7 +67,7 @@ static void qcom_tzmem_cleanup_area(struct qcom_tzmem_area *area)
}
-#elif IS_ENABLED(CONFIG_QCOM_TZMEM_MODE_SHMBRIDGE)
+#else
#include <linux/firmware/qcom/qcom_scm.h>
#include <linux/of.h>
--
2.55.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v3] tee: remove TZMEM_MODE_GENERIC
2026-08-07 17:50 [PATCH v3] tee: remove TZMEM_MODE_GENERIC Julian Braha
@ 2026-08-07 18:33 ` Arnd Bergmann
2026-08-07 19:05 ` Nathan Chancellor
1 sibling, 0 replies; 3+ messages in thread
From: Arnd Bergmann @ 2026-08-07 18:33 UTC (permalink / raw)
To: Julian Braha, Amirreza Zarrabi, jenswi
Cc: Sumit Garg, Geert Uytterhoeven, amirreza.zarrabi, op-tee,
linux-kernel, Elliot Berman, Bjorn Andersson, Bartosz Golaszewski,
Harshal Dev, Nathan Chancellor, Nicolas Schier, Jani Nikula,
Kees Cook
On Fri, Aug 7, 2026, at 19:50, Julian Braha wrote:
> 'select' does not work on config options in a 'choice', so currently it is
> possible to enable QCOMTEE without QCOM_TZMEM_MODE_SHMBRIDGE, even though
> this is needed at runtime.
>
> There are no users of the generic allocator option,
> QCOM_TZMEM_MODE_GENERIC, so let's remove it. Then, we can remove the
> containing choice..endchoice, which allows the 'select' to work as
> intended.
>
> Suggested-by: Arnd Bergmann <arnd@arndb.de>
> Signed-off-by: Julian Braha <julianbraha@gmail.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
> Changes since v1:
> - remove TZMEM_MODE_GENERIC instead of removing the dead select
Looks good now.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v3] tee: remove TZMEM_MODE_GENERIC
2026-08-07 17:50 [PATCH v3] tee: remove TZMEM_MODE_GENERIC Julian Braha
2026-08-07 18:33 ` Arnd Bergmann
@ 2026-08-07 19:05 ` Nathan Chancellor
1 sibling, 0 replies; 3+ messages in thread
From: Nathan Chancellor @ 2026-08-07 19:05 UTC (permalink / raw)
To: Julian Braha
Cc: amirreza.zarrabi, jenswi, sumit.garg, arnd, geert+renesas,
amirreza.zarrabi, op-tee, linux-kernel, quic_eberman, andersson,
brgl, harshal.dev, nsc, jani.nikula, kees
On Fri, Aug 07, 2026 at 06:50:41PM +0100, Julian Braha wrote:
> 'select' does not work on config options in a 'choice', so currently it is
> possible to enable QCOMTEE without QCOM_TZMEM_MODE_SHMBRIDGE, even though
> this is needed at runtime.
>
> There are no users of the generic allocator option,
> QCOM_TZMEM_MODE_GENERIC, so let's remove it. Then, we can remove the
> containing choice..endchoice, which allows the 'select' to work as
> intended.
>
> Suggested-by: Arnd Bergmann <arnd@arndb.de>
> Signed-off-by: Julian Braha <julianbraha@gmail.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
One small nit below but I would only send v4 if there are other things
to be addressed.
A note to the maintainers: We would like to turn selecting a choice
symbol into a hard error in 7.4, so please consider picking this up for
7.3-rc1.
> ---
> Changes since v2:
> - add back stubs for when CONFIG_QCOM_TZMEM_MODE_GENERIC=n
> - updated help text accordingly
>
> Link:
> https://lore.kernel.org/all/20260729203845.387239-1-julianbraha@gmail.com/
>
> Changes since v1:
> - remove TZMEM_MODE_GENERIC instead of removing the dead select
>
> Link:
> https://lore.kernel.org/all/20260715092539.18384-1-julianbraha@gmail.com/
> ---
> drivers/firmware/qcom/Kconfig | 26 +++++---------------------
> drivers/firmware/qcom/qcom_tzmem.c | 4 ++--
> 2 files changed, 7 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/firmware/qcom/Kconfig b/drivers/firmware/qcom/Kconfig
> index c7f8413ab996..95b968d88dc3 100644
> --- a/drivers/firmware/qcom/Kconfig
> +++ b/drivers/firmware/qcom/Kconfig
> @@ -34,33 +34,17 @@ config QCOM_TZMEM
> tristate
> select GENERIC_ALLOCATOR
>
> -choice
> - prompt "TrustZone interface memory allocator mode"
> - depends on QCOM_TZMEM
> - default QCOM_TZMEM_MODE_GENERIC
> - help
> - Selects the mode of the memory allocator providing memory buffers of
> - suitable format for sharing with the TrustZone. If in doubt, select
> - 'Generic'.
> -
> -config QCOM_TZMEM_MODE_GENERIC
> - bool "Generic"
> - help
> - Use the generic allocator mode. The memory is page-aligned, non-cachable
> - and physically contiguous.
> -
> config QCOM_TZMEM_MODE_SHMBRIDGE
> - bool "SHM Bridge"
> + bool "TrustZone interface memory allocator: SHM Bridge"
> + depends on QCOM_TZMEM
> help
> - Use Qualcomm Shared Memory Bridge. The memory has the same alignment as
> - in the 'Generic' allocator but is also explicitly marked as an SHM Bridge
> - buffer.
> + Use Qualcomm Shared Memory Bridge as memory allocator. The memory has the
> + same alignment as in the 'Generic' allocator, which is used when this option
> + is disabled, but is also explicitly marked as an SHM Bridge buffer.
>
> With this selected, all buffers passed to the TrustZone must be allocated
> using the TZMem allocator or else the TrustZone will refuse to use them.
>
> -endchoice
> -
> config QCOM_QSEECOM
> bool "Qualcomm QSEECOM interface driver"
> depends on QCOM_SCM=y
> diff --git a/drivers/firmware/qcom/qcom_tzmem.c b/drivers/firmware/qcom/qcom_tzmem.c
> index 0fd9581275f1..510474902c3a 100644
> --- a/drivers/firmware/qcom/qcom_tzmem.c
> +++ b/drivers/firmware/qcom/qcom_tzmem.c
> @@ -50,7 +50,7 @@ static struct device *qcom_tzmem_dev;
> static RADIX_TREE(qcom_tzmem_chunks, GFP_ATOMIC);
> static DEFINE_SPINLOCK(qcom_tzmem_chunks_lock);
>
> -#if IS_ENABLED(CONFIG_QCOM_TZMEM_MODE_GENERIC)
> +#ifndef CONFIG_QCOM_TZMEM_MODE_SHMBRIDGE
I realize you likely did this to keep the diff small but I think
negative conditional checks are harder to read than positive ones, so I
would consider making this an '#ifdef' and flipping the branches.
> static int qcom_tzmem_init(void)
> {
> @@ -67,7 +67,7 @@ static void qcom_tzmem_cleanup_area(struct qcom_tzmem_area *area)
>
> }
>
> -#elif IS_ENABLED(CONFIG_QCOM_TZMEM_MODE_SHMBRIDGE)
> +#else
>
> #include <linux/firmware/qcom/qcom_scm.h>
> #include <linux/of.h>
> --
> 2.55.0
>
--
Cheers,
Nathan
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-08-07 19:05 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-07 17:50 [PATCH v3] tee: remove TZMEM_MODE_GENERIC Julian Braha
2026-08-07 18:33 ` Arnd Bergmann
2026-08-07 19:05 ` Nathan Chancellor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox