Re: [PATCH v3] tee: remove TZMEM_MODE_GENERIC

Nathan Chancellor via OP-TEE <[email protected]>
Newsgroups org.trustedfirmware.lists.op-tee,org.kernel.vger.linux-kernel
Message-ID <20260807190513.GA2638974@ax162>
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 <[email protected]>
> Signed-off-by: Julian Braha <[email protected]>

Reviewed-by: Nathan Chancellor <[email protected]>

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/[email protected]/
> 
> Changes since v1:
> - remove TZMEM_MODE_GENERIC instead of removing the dead select
> 
> Link:
> https://lore.kernel.org/all/[email protected]/
> ---
>  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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.