From nobody Wed Dec 17 00:05:05 2025 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E4FCF30DD2A for ; Wed, 10 Dec 2025 16:13:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765383236; cv=none; b=lIcsIsohVJskjFgKomvKA9F/cQOqRqX4oyCe+sZG3eRGe5Xa6yCyvQslqhTTKWq+1FBGFVECRcd11PQmFWnLmhEUzlt6D9BmT42pRBw7rjilOWZFRTgZMaAn2AGXMli/targP+HUm/bxhDsFO04PEF1YhBn9IU3vYj14OhD7AFM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765383236; c=relaxed/simple; bh=1WKxEfgWpJW5Y/4vJJvMgYWzEgjhCSLzMxJDGx9+sF4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=vAgQdKLxhRFG6eGkzU4/8obsIL0G2Fry8ieWy7jQsg0oyCGZk+mYqfdCaUrxqbIOZwh6Q93XH1LopmuUh4UxRrU3nY2sr9ESeC3ry56e4wEmz2R4qsw1r7HWMH2OAWo7WIIEUe6kXBrIQGLU7qqeEikSub1TKvmnbJao3EmbS9Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b=E/LU088S; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc.com header.i=@rivosinc.com header.b="E/LU088S" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-297e264528aso295925ad.2 for ; Wed, 10 Dec 2025 08:13:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc.com; s=google; t=1765383231; x=1765988031; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=9jLulzX4o5kcNcg2mLO36Qd+pkSMVEEcKu8eC9Bg0ok=; b=E/LU088SXLUsKpefanbIrKvQnYxsNfU7zCT/c/KV++YhkIPTE0YFa76hiswZpWWrlh heD2Jf11m4NavjZngWS709FxrX2CeZ23HAYQZtvLU+QOCCn5xA5VwWDcDI3c6NnbfFPV hHOXv9vDna3lPIZSer7hDM0MrLPa1deI8kaPZsPn91c0xiksn7spkvfT12sdjJrt1GUM wJ78rKWmRf2wKyV93jowAE6bO5MQ71dsT2HhEuVogbLpOVZL/OOd7u2yVxR5dnmhT6zv Qqjqes2JSq4ocdcl2pZErss7KCHOdOc3ZYYMW24ALtfOq9aftYYyYmkPVipk+0kJlHEL R0xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765383231; x=1765988031; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=9jLulzX4o5kcNcg2mLO36Qd+pkSMVEEcKu8eC9Bg0ok=; b=TMk16F7BTwR3C9QKDIHwLhreU7mMzaj/FcviY8Hc2yLW5HLE0ISly79R+quIGsn5zc jYqjdrRtAsoHcJzJQ0QXcMAnE6OL7DLVj3wPvOv3QLyOPTu5KEf6Mh9oPj9ACoZQaqcU h8Kaeji0X3mHoG707aEHVN+tu9qiM4ECC+tqnxPt8szaL0FMlm/mNKpemwFXHKy3nD8U mt7oefAeT3AnXceMQbocvIdGgH8sfkXUr1S1WoQUUvSIF2KkEwv1gzMCL13d8iAfwsXx BHbtbXMXYIx8u4xLTvwC+7gR/wpINAX2atcrZv8pSRw18wVE7sh4Srf5dtN5VzGfCNMV INtw== X-Forwarded-Encrypted: i=1; AJvYcCXG0QUHcUIi3nO8qahkl/LRxwr52oGyQdjJhj49bxyKK5nBgVYfA1Zs/zgyeBRFta7JC17n//JJjYK7lFw=@vger.kernel.org X-Gm-Message-State: AOJu0YyysKbawzndUAzHvnS2Lgt/usX7PhcnsGdI1OdY/ypVCLnrcStp dNuv2OwqKqlThie1FJlLPNNMM3+jpK1BaU6QvTKW7dgfW61Zk7tJNLIEStQIuz6NV/k= X-Gm-Gg: ASbGnctPz4K7S6fRmERrvPz6KJrC4BiOtMTSWO32emJWfbIeUCJhNOFToQi/y1ONCDG cyEYS9jbIcqXfKWtTBnMOeMh0JDdj8jo8hvHcAsdKjxIodvWf0CbRTYBkvpZ/DqSmmqCWSLyCBZ NYLEb4jd+xB4Nj53PU8+OB8w7EJ0r4GE5nHOPM4mmBJqhMty+h67nzY6p4WxLxPuceN9BGdsbwS IjRdNlSUw4T3vwqdrUT9L2WfH1PspjJ4fC/SoUNlrAgP8U9pfDKm4vCqRi5c6Dx9NxpsFuwyvzx aB5L50Ne140HmX2qINLQEUV1qBWDw43KLlwxrnYXnxD4zm/Gd79iDsUZPHw7o2SMcNUZePZZZhw 8zDXeR2u9QgZ1FdHzTZ1FslmWXjWafEMdk+TzJTjUXEeSyQxyEPgzDIYjpLB5HaHi4Fs4x1lJvH PMBKZOQ3DD2ZIJ2pFunzk4gfgDUPh7wgv9th+ndtVDtHfUnAvy7YL/Huh5YmRIK4ZAy+92ZqWvw ZXqUgKX7r3YSugmOcQrwbs= X-Google-Smtp-Source: AGHT+IEAU8N24B/EPazQdWfx88SpemeMEdotLMFEDrpnkvXnhOIR9ppA3qXMWgb1dBRFgm4ZO8RBZg== X-Received: by 2002:a05:7022:239a:b0:11d:f037:891c with SMTP id a92af1059eb24-11f296ecaeamr1587756c88.44.1765383231291; Wed, 10 Dec 2025 08:13:51 -0800 (PST) Received: from [127.0.1.1] (p7838222-ipoefx.ipoe.ocn.ne.jp. [123.225.39.221]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-11f283d4733sm10364600c88.17.2025.12.10.08.13.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Dec 2025 08:13:51 -0800 (PST) From: Charlie Jenkins X-Google-Original-From: Charlie Jenkins Date: Wed, 10 Dec 2025 08:13:38 -0800 Subject: [PATCH RFC 01/10] riscv: Standardize extension capitilization Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251210-profiles-v1-1-315a6ff2ca5a@gmail.com> References: <20251210-profiles-v1-0-315a6ff2ca5a@gmail.com> In-Reply-To: <20251210-profiles-v1-0-315a6ff2ca5a@gmail.com> To: Paul Walmsley , Palmer Dabbelt , Alexandre Ghiti , Anup Patel , Atish Patra , Samuel Holland , =?utf-8?q?Bj=C3=B6rn_T=C3=B6pel?= , Luke Nelson , Xi Wang , Eric Biggers , Conor Dooley Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Charlie Jenkins X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765383226; l=8486; i=thecharlesjenkins@gmail.com; s=20240124; h=from:subject:message-id; bh=1WKxEfgWpJW5Y/4vJJvMgYWzEgjhCSLzMxJDGx9+sF4=; b=GyXzSZm2+GBG8FIkFmBsJDnn2dvMLsepCSRBCLpA05cARsuwW8jyX3svDK36JOrPN1+NQZvfu E8oxZBULm4CB48hfqcbnOyBY5CLyOYlmkbwKllrcKeNjJjyDfygDZve X-Developer-Key: i=thecharlesjenkins@gmail.com; a=ed25519; pk=eVndo3OHViAjwuqHqbJB4ZtzJzzvk/r6fUf84tZ3rw4= The base extensions are often lowercase and were written as lowercase in hwcap, but other references to these extensions in the kernel are uppercase. Standardize the case to make it easier to handle macro expansion. Signed-off-by: Charlie Jenkins --- arch/riscv/include/asm/hwcap.h | 18 +++++++++--------- arch/riscv/include/asm/switch_to.h | 4 ++-- arch/riscv/kernel/cpufeature.c | 32 ++++++++++++++++---------------- arch/riscv/kernel/sys_hwprobe.c | 4 ++-- arch/riscv/kvm/vcpu_onereg.c | 16 ++++++++-------- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/arch/riscv/include/asm/hwcap.h b/arch/riscv/include/asm/hwcap.h index affd63e11b0a..1ed73effc700 100644 --- a/arch/riscv/include/asm/hwcap.h +++ b/arch/riscv/include/asm/hwcap.h @@ -10,15 +10,15 @@ =20 #include =20 -#define RISCV_ISA_EXT_a ('a' - 'a') -#define RISCV_ISA_EXT_c ('c' - 'a') -#define RISCV_ISA_EXT_d ('d' - 'a') -#define RISCV_ISA_EXT_f ('f' - 'a') -#define RISCV_ISA_EXT_h ('h' - 'a') -#define RISCV_ISA_EXT_i ('i' - 'a') -#define RISCV_ISA_EXT_m ('m' - 'a') -#define RISCV_ISA_EXT_q ('q' - 'a') -#define RISCV_ISA_EXT_v ('v' - 'a') +#define RISCV_ISA_EXT_A ('a' - 'a') +#define RISCV_ISA_EXT_C ('c' - 'a') +#define RISCV_ISA_EXT_D ('d' - 'a') +#define RISCV_ISA_EXT_F ('f' - 'a') +#define RISCV_ISA_EXT_H ('h' - 'a') +#define RISCV_ISA_EXT_I ('i' - 'a') +#define RISCV_ISA_EXT_M ('m' - 'a') +#define RISCV_ISA_EXT_Q ('q' - 'a') +#define RISCV_ISA_EXT_V ('v' - 'a') =20 /* * These macros represent the logical IDs of each multi-letter RISC-V ISA diff --git a/arch/riscv/include/asm/switch_to.h b/arch/riscv/include/asm/sw= itch_to.h index 0e71eb82f920..ff35a4d04f85 100644 --- a/arch/riscv/include/asm/switch_to.h +++ b/arch/riscv/include/asm/switch_to.h @@ -60,8 +60,8 @@ static inline void __switch_to_fpu(struct task_struct *pr= ev, =20 static __always_inline bool has_fpu(void) { - return riscv_has_extension_likely(RISCV_ISA_EXT_f) || - riscv_has_extension_likely(RISCV_ISA_EXT_d); + return riscv_has_extension_likely(RISCV_ISA_EXT_F) || + riscv_has_extension_likely(RISCV_ISA_EXT_D); } #else static __always_inline bool has_fpu(void) { return false; } diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index 72ca768f4e91..47612e9ca1c6 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c @@ -83,7 +83,7 @@ EXPORT_SYMBOL_GPL(__riscv_isa_extension_available); static int riscv_ext_f_depends(const struct riscv_isa_ext_data *data, const unsigned long *isa_bitmap) { - if (__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_f)) + if (__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_F)) return 0; =20 return -EPROBE_DEFER; @@ -145,7 +145,7 @@ static int riscv_ext_f_validate(const struct riscv_isa_= ext_data *data, * Due to extension ordering, d is checked before f, so no deferral * is required. */ - if (!__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_d)) { + if (!__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_D)) { pr_warn_once("This kernel does not support systems with F but not D\n"); return -EINVAL; } @@ -188,7 +188,7 @@ static int riscv_ext_vector_float_validate(const struct= riscv_isa_ext_data *data * Since this function validates vector only, and v/Zve* are probed * after f/d, there's no need for a deferral here. */ - if (!__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_d)) + if (!__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_D)) return -EINVAL; =20 return 0; @@ -223,7 +223,7 @@ static int riscv_ext_zcd_validate(const struct riscv_is= a_ext_data *data, const unsigned long *isa_bitmap) { if (__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_ZCA) && - __riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_d)) + __riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_D)) return 0; =20 return -EPROBE_DEFER; @@ -236,7 +236,7 @@ static int riscv_ext_zcf_validate(const struct riscv_is= a_ext_data *data, return -EINVAL; =20 if (__riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_ZCA) && - __riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_f)) + __riscv_isa_extension_available(isa_bitmap, RISCV_ISA_EXT_F)) return 0; =20 return -EPROBE_DEFER; @@ -448,15 +448,15 @@ static const unsigned int riscv_c_exts[] =3D { * New entries to this struct should follow the ordering rules described a= bove. */ const struct riscv_isa_ext_data riscv_isa_ext[] =3D { - __RISCV_ISA_EXT_DATA(i, RISCV_ISA_EXT_i), - __RISCV_ISA_EXT_DATA(m, RISCV_ISA_EXT_m), - __RISCV_ISA_EXT_SUPERSET(a, RISCV_ISA_EXT_a, riscv_a_exts), - __RISCV_ISA_EXT_DATA_VALIDATE(f, RISCV_ISA_EXT_f, riscv_ext_f_validate), - __RISCV_ISA_EXT_DATA_VALIDATE(d, RISCV_ISA_EXT_d, riscv_ext_d_validate), - __RISCV_ISA_EXT_DATA(q, RISCV_ISA_EXT_q), - __RISCV_ISA_EXT_SUPERSET(c, RISCV_ISA_EXT_c, riscv_c_exts), - __RISCV_ISA_EXT_SUPERSET_VALIDATE(v, RISCV_ISA_EXT_v, riscv_v_exts, riscv= _ext_vector_float_validate), - __RISCV_ISA_EXT_DATA(h, RISCV_ISA_EXT_h), + __RISCV_ISA_EXT_DATA(i, RISCV_ISA_EXT_I), + __RISCV_ISA_EXT_DATA(m, RISCV_ISA_EXT_M), + __RISCV_ISA_EXT_SUPERSET(a, RISCV_ISA_EXT_A, riscv_a_exts), + __RISCV_ISA_EXT_DATA_VALIDATE(f, RISCV_ISA_EXT_F, riscv_ext_f_validate), + __RISCV_ISA_EXT_DATA_VALIDATE(d, RISCV_ISA_EXT_D, riscv_ext_d_validate), + __RISCV_ISA_EXT_DATA(q, RISCV_ISA_EXT_Q), + __RISCV_ISA_EXT_SUPERSET(c, RISCV_ISA_EXT_C, riscv_c_exts), + __RISCV_ISA_EXT_SUPERSET_VALIDATE(v, RISCV_ISA_EXT_V, riscv_v_exts, riscv= _ext_vector_float_validate), + __RISCV_ISA_EXT_DATA(h, RISCV_ISA_EXT_H), __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicbom, RISCV_ISA_EXT_ZICBOM, riscv_xli= nuxenvcfg_exts, riscv_ext_zicbom_validate), __RISCV_ISA_EXT_DATA_VALIDATE(zicbop, RISCV_ISA_EXT_ZICBOP, riscv_ext_zic= bop_validate), __RISCV_ISA_EXT_SUPERSET_VALIDATE(zicboz, RISCV_ISA_EXT_ZICBOZ, riscv_xli= nuxenvcfg_exts, riscv_ext_zicboz_validate), @@ -847,8 +847,8 @@ static void __init riscv_fill_hwcap_from_isa_string(uns= igned long *isa2hwcap) * marchid. */ if (acpi_disabled && boot_vendorid =3D=3D THEAD_VENDOR_ID && boot_archid= =3D=3D 0x0) { - this_hwcap &=3D ~isa2hwcap[RISCV_ISA_EXT_v]; - clear_bit(RISCV_ISA_EXT_v, source_isa); + this_hwcap &=3D ~isa2hwcap[RISCV_ISA_EXT_V]; + clear_bit(RISCV_ISA_EXT_V, source_isa); } =20 riscv_resolve_isa(source_isa, isainfo->isa, &this_hwcap, isa2hwcap); diff --git a/arch/riscv/kernel/sys_hwprobe.c b/arch/riscv/kernel/sys_hwprob= e.c index 199d13f86f31..c9eb28f6ba93 100644 --- a/arch/riscv/kernel/sys_hwprobe.c +++ b/arch/riscv/kernel/sys_hwprobe.c @@ -80,10 +80,10 @@ static void hwprobe_isa_ext0(struct riscv_hwprobe *pair, if (has_fpu()) pair->value |=3D RISCV_HWPROBE_IMA_FD; =20 - if (riscv_isa_extension_available(NULL, c)) + if (riscv_isa_extension_available(NULL, C)) pair->value |=3D RISCV_HWPROBE_IMA_C; =20 - if (has_vector() && riscv_isa_extension_available(NULL, v)) + if (has_vector() && riscv_isa_extension_available(NULL, V)) pair->value |=3D RISCV_HWPROBE_IMA_V; =20 /* diff --git a/arch/riscv/kvm/vcpu_onereg.c b/arch/riscv/kvm/vcpu_onereg.c index 865dae903aa0..b6f5d1a74aec 100644 --- a/arch/riscv/kvm/vcpu_onereg.c +++ b/arch/riscv/kvm/vcpu_onereg.c @@ -26,14 +26,14 @@ /* Mapping between KVM ISA Extension ID & guest ISA extension ID */ static const unsigned long kvm_isa_ext_arr[] =3D { /* Single letter extensions (alphabetically sorted) */ - [KVM_RISCV_ISA_EXT_A] =3D RISCV_ISA_EXT_a, - [KVM_RISCV_ISA_EXT_C] =3D RISCV_ISA_EXT_c, - [KVM_RISCV_ISA_EXT_D] =3D RISCV_ISA_EXT_d, - [KVM_RISCV_ISA_EXT_F] =3D RISCV_ISA_EXT_f, - [KVM_RISCV_ISA_EXT_H] =3D RISCV_ISA_EXT_h, - [KVM_RISCV_ISA_EXT_I] =3D RISCV_ISA_EXT_i, - [KVM_RISCV_ISA_EXT_M] =3D RISCV_ISA_EXT_m, - [KVM_RISCV_ISA_EXT_V] =3D RISCV_ISA_EXT_v, + [KVM_RISCV_ISA_EXT_A] =3D RISCV_ISA_EXT_A, + [KVM_RISCV_ISA_EXT_C] =3D RISCV_ISA_EXT_C, + [KVM_RISCV_ISA_EXT_D] =3D RISCV_ISA_EXT_D, + [KVM_RISCV_ISA_EXT_F] =3D RISCV_ISA_EXT_F, + [KVM_RISCV_ISA_EXT_H] =3D RISCV_ISA_EXT_H, + [KVM_RISCV_ISA_EXT_I] =3D RISCV_ISA_EXT_I, + [KVM_RISCV_ISA_EXT_M] =3D RISCV_ISA_EXT_M, + [KVM_RISCV_ISA_EXT_V] =3D RISCV_ISA_EXT_V, /* Multi letter extensions (alphabetically sorted) */ KVM_ISA_EXT_ARR(SMNPM), KVM_ISA_EXT_ARR(SMSTATEEN), --=20 2.43.0