[PATCH v2] arm64: Restrict undef hook for cpufeature registers

Catalin Marinas catalin.marinas at arm.com
Tue Jun 8 08:20:43 PDT 2021


On Mon, May 17, 2021 at 01:02:56PM -0500, Rob Herring wrote:
> From: Raphael Gault <raphael.gault at arm.com>
> 
> This commit modifies the mask of the mrs_hook declared in
> arch/arm64/kernel/cpufeatures.c which emulates only feature register
> access. This is necessary because this hook's mask was too large and
> thus masking any mrs instruction, even if not related to the emulated
> registers which made the pmu emulation inefficient.
> 
> Signed-off-by: Raphael Gault <raphael.gault at arm.com>
> Signed-off-by: Rob Herring <robh at kernel.org>
> ---
> I don't *think* I'm going to need this for the perf userspace counter 
> access, but this patch stands on its own as the PMU registers are not 
> emulated. So please apply it.
> 
> v2:
>  - Fix warning for set but unused sys_reg
> ---
>  arch/arm64/kernel/cpufeature.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
> index efed2830d141..c773f7c3c007 100644
> --- a/arch/arm64/kernel/cpufeature.c
> +++ b/arch/arm64/kernel/cpufeature.c
> @@ -2905,8 +2905,8 @@ static int emulate_mrs(struct pt_regs *regs, u32 insn)
>  }
>  
>  static struct undef_hook mrs_hook = {
> -	.instr_mask = 0xfff00000,
> -	.instr_val  = 0xd5300000,
> +	.instr_mask = 0xffff0000,
> +	.instr_val  = 0xd5380000,

Acked-by: Catalin Marinas <catalin.marinas at arm.com>

and changing Will's email address.

-- 
Catalin



More information about the linux-arm-kernel mailing list