Subject: Re: Bug: Write fault blocked by KUAP! (kernel 6.2-rc6, Talos II)

From: "Erhard F." <[email-masked]>
Date: Thu, 16 Feb 2023 16:20:20 +0100

On Thu, 9 Feb 2023 07:21:55 +0000
Christophe Leroy <[email-masked]> wrote:

> An easy fix would probably be to also check the suffix as a prefixed 
> instruction with 0 as suffix is not valid :
> 
> diff --git a/arch/powerpc/include/asm/inst.h 
> b/arch/powerpc/include/asm/inst.h
> index 684d3f453282..87084a52598b 100644
> --- a/arch/powerpc/include/asm/inst.h
> +++ b/arch/powerpc/include/asm/inst.h
> @@ -86,7 +86,7 @@ static inline ppc_inst_t ppc_inst_read(const u32 *ptr)
> 
>   static inline bool ppc_inst_prefixed(ppc_inst_t x)
>   {
> -	return IS_ENABLED(CONFIG_PPC64) && ppc_inst_primary_opcode(x) == 
> OP_PREFIX;
> +	return IS_ENABLED(CONFIG_PPC64) && ppc_inst_primary_opcode(x) == 
> OP_PREFIX && ppc_inst_suffix(x);
>   }
> 
>   static inline ppc_inst_t ppc_inst_swab(ppc_inst_t x)

Your patch works fine for me! Applied on top of v6.2-rc7 and in the resulting kernel the Write fault is gone. Thanks!

Regards,
Erhard