From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anup Patel Subject: Re: [PATCH V2 3/4] riscv: Extending cpufeature.c to detect V-extension Date: Thu, 23 Jan 2020 11:15:09 +0530 Message-ID: References: <20200116143029.31441-1-guoren@kernel.org> <20200116143029.31441-3-guoren@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Return-path: Received: from mail-wr1-f66.google.com ([209.85.221.66]:46762 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725828AbgAWFpW (ORCPT ); Thu, 23 Jan 2020 00:45:22 -0500 Received: by mail-wr1-f66.google.com with SMTP id z7so1626418wrl.13 for ; Wed, 22 Jan 2020 21:45:21 -0800 (PST) In-Reply-To: <20200116143029.31441-3-guoren@kernel.org> Sender: linux-arch-owner@vger.kernel.org List-ID: To: Guo Ren Cc: Paul Walmsley , Palmer Dabbelt , Albert Ou , Anup Patel , Vincent Chen , Zong Li , Greentime Hu , Bin Meng , Atish Patra , Andreas Schwab , "linux-kernel@vger.kernel.org List" , linux-arch@vger.kernel.org, Arnd Bergmann , linux-csky@vger.kernel.org, linux-riscv , Guo Ren On Thu, Jan 16, 2020 at 8:01 PM wrote: > > From: Guo Ren > > Current cpufeature.c doesn't support detecting V-extension, because > "rv64" also contain a 'v' letter and we need to skip it. > > Signed-off-by: Guo Ren > Cc: Anup Patel > --- > arch/riscv/include/uapi/asm/hwcap.h | 1 + > arch/riscv/kernel/cpufeature.c | 4 +++- > 2 files changed, 4 insertions(+), 1 deletion(-) > > diff --git a/arch/riscv/include/uapi/asm/hwcap.h b/arch/riscv/include/uapi/asm/hwcap.h > index dee98ee28318..a913e9a38819 100644 > --- a/arch/riscv/include/uapi/asm/hwcap.h > +++ b/arch/riscv/include/uapi/asm/hwcap.h > @@ -21,5 +21,6 @@ > #define COMPAT_HWCAP_ISA_F (1 << ('F' - 'A')) > #define COMPAT_HWCAP_ISA_D (1 << ('D' - 'A')) > #define COMPAT_HWCAP_ISA_C (1 << ('C' - 'A')) > +#define COMPAT_HWCAP_ISA_V (1 << ('V' - 'A')) > > #endif /* _UAPI_ASM_RISCV_HWCAP_H */ > diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c > index a5ad00043104..c8527d770c98 100644 > --- a/arch/riscv/kernel/cpufeature.c > +++ b/arch/riscv/kernel/cpufeature.c > @@ -30,6 +30,7 @@ void riscv_fill_hwcap(void) > isa2hwcap['f'] = isa2hwcap['F'] = COMPAT_HWCAP_ISA_F; > isa2hwcap['d'] = isa2hwcap['D'] = COMPAT_HWCAP_ISA_D; > isa2hwcap['c'] = isa2hwcap['C'] = COMPAT_HWCAP_ISA_C; > + isa2hwcap['v'] = isa2hwcap['V'] = COMPAT_HWCAP_ISA_V; > > elf_hwcap = 0; > > @@ -44,7 +45,8 @@ void riscv_fill_hwcap(void) > continue; > } > > - for (i = 0; i < strlen(isa); ++i) > + /* Skip rv64/rv32 to support v/V:vector */ > + for (i = 4; i < strlen(isa); ++i) > this_hwcap |= isa2hwcap[(unsigned char)(isa[i])]; > > /* > -- > 2.17.0 > LGTM. Reviewed-by: Anup Patel Regards, Anup