[PATCH v3 02/24] powerpc/secvar: WARN_ON_ONCE() if multiple secvar ops are set

Nicholas Piggin npiggin at gmail.com
Thu Jan 19 11:59:12 AEDT 2023


On Wed Jan 18, 2023 at 4:10 PM AEST, Andrew Donnellan wrote:
> From: Russell Currey <ruscur at russell.cc>
>
> The secvar code only supports one consumer at a time.
>
> Multiple consumers aren't possible at this point in time, but we'd want
> it to be obvious if it ever could happen.
>
> Signed-off-by: Russell Currey <ruscur at russell.cc>
> Signed-off-by: Andrew Donnellan <ajd at linux.ibm.com>
> ---
>  arch/powerpc/kernel/secvar-ops.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/kernel/secvar-ops.c b/arch/powerpc/kernel/secvar-ops.c
> index 6a29777d6a2d..aa1b2adc2710 100644
> --- a/arch/powerpc/kernel/secvar-ops.c
> +++ b/arch/powerpc/kernel/secvar-ops.c
> @@ -8,10 +8,12 @@
>  
>  #include <linux/cache.h>
>  #include <asm/secvar.h>
> +#include <asm/bug.h>
>  
> -const struct secvar_operations *secvar_ops __ro_after_init;
> +const struct secvar_operations *secvar_ops __ro_after_init = NULL;
>  
>  void set_secvar_ops(const struct secvar_operations *ops)
>  {
> +	WARN_ON_ONCE(secvar_ops);
>  	secvar_ops = ops;

You could make it return error here and two line patch in the caller to
handle the error and then things wouldn't get corrupted.

Thanks,
Nick


More information about the Linuxppc-dev mailing list