linux-riscv.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups
@ 2023-02-24 15:45 Andrew Jones
  2023-02-24 15:45 ` [PATCH v2 1/6] riscv: Clarify RISCV_ALTERNATIVE help text Andrew Jones
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Andrew Jones @ 2023-02-24 15:45 UTC (permalink / raw)
  To: linux-riscv
  Cc: 'Paul Walmsley ', 'Jisheng Zhang ',
	'Palmer Dabbelt ', 'Heiko Stuebner ',
	'Conor Dooley ', 'Albert Ou '

This series has no intended functional change. These cleanups were
found while renaming errata_id to patch_id in order to better
convey that its purpose is larger than errata (it's also for
cpufeatures).

Based on riscv-linux/for-next

Thanks,
drew

v2:
  - Rebased on latest riscv-linux/for-next
  - Add a new patch to reword the help text for RISCV_ALTERNATIVE
    as suggested by Conor
  - Snuck a comment cleanup into the errata_id -> patch_id patch
  - Reworded commit message of the last patch [Conor]
  - picked up R-b's from Conor and Heiko

Andrew Jones (6):
  riscv: Clarify RISCV_ALTERNATIVE help text
  riscv: Rename Kconfig.erratas to Kconfig.errata
  riscv: alternatives: Remove unnecessary define and unused struct
  riscv: alternatives: Rename errata_id to patch_id
  riscv: lib: Include hwcap.h directly
  riscv: cpufeature: Drop errata_list.h and other unused includes

 arch/riscv/Kconfig                            |  8 +--
 .../riscv/{Kconfig.erratas => Kconfig.errata} |  0
 arch/riscv/errata/sifive/errata.c             |  8 +--
 arch/riscv/errata/thead/errata.c              |  4 +-
 arch/riscv/include/asm/alternative-macros.h   | 72 +++++++++----------
 arch/riscv/include/asm/alternative.h          | 11 +--
 arch/riscv/kernel/cpufeature.c                | 11 +--
 arch/riscv/lib/strcmp.S                       |  3 +-
 arch/riscv/lib/strlen.S                       |  3 +-
 arch/riscv/lib/strncmp.S                      |  3 +-
 10 files changed, 54 insertions(+), 69 deletions(-)
 rename arch/riscv/{Kconfig.erratas => Kconfig.errata} (100%)

-- 
2.39.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/6] riscv: Clarify RISCV_ALTERNATIVE help text
  2023-02-24 15:45 [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups Andrew Jones
@ 2023-02-24 15:45 ` Andrew Jones
  2023-02-24 15:45 ` [PATCH v2 2/6] riscv: Rename Kconfig.erratas to Kconfig.errata Andrew Jones
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Andrew Jones @ 2023-02-24 15:45 UTC (permalink / raw)
  To: linux-riscv
  Cc: 'Paul Walmsley ', 'Jisheng Zhang ',
	'Palmer Dabbelt ', 'Heiko Stuebner ',
	'Conor Dooley ', 'Albert Ou '

Clarify RISCV_ALTERNATIVE's help text by pointing out that code
patching is not only done at boot time, but also module load time.
Also point out that this is the minimal possible overhead.

Signed-off-by: Andrew Jones <ajones@ventanamicro.com>
---
 arch/riscv/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 81eb031887d2..eb087e17c91b 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -380,8 +380,8 @@ config RISCV_ALTERNATIVE
 	help
 	  This Kconfig allows the kernel to automatically patch the
 	  errata required by the execution platform at run time. The
-	  code patching is performed once in the boot stages. It means
-	  that the overhead from this mechanism is just taken once.
+	  code patching overhead is minimal, as it's only done once
+	  at boot and once on each module load.
 
 config RISCV_ALTERNATIVE_EARLY
 	bool
-- 
2.39.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/6] riscv: Rename Kconfig.erratas to Kconfig.errata
  2023-02-24 15:45 [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups Andrew Jones
  2023-02-24 15:45 ` [PATCH v2 1/6] riscv: Clarify RISCV_ALTERNATIVE help text Andrew Jones
@ 2023-02-24 15:45 ` Andrew Jones
  2023-02-24 15:53   ` Ben Dooks
  2023-02-24 15:45 ` [PATCH v2 3/6] riscv: alternatives: Remove unnecessary define and unused struct Andrew Jones
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 10+ messages in thread
From: Andrew Jones @ 2023-02-24 15:45 UTC (permalink / raw)
  To: linux-riscv
  Cc: 'Paul Walmsley ', 'Jisheng Zhang ',
	'Palmer Dabbelt ', 'Heiko Stuebner ',
	'Conor Dooley ', 'Albert Ou ',
	Heiko Stuebner

Errata is already plural for erratum. Rename it to make the
grammar gooder.

Signed-off-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Heiko Stuebner <heiko.stuebner@vrull.eu>
---
 arch/riscv/Kconfig                             | 2 +-
 arch/riscv/{Kconfig.erratas => Kconfig.errata} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)
 rename arch/riscv/{Kconfig.erratas => Kconfig.errata} (100%)

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index eb087e17c91b..80bc960706e3 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -246,7 +246,7 @@ config AS_HAS_INSN
 	def_bool $(as-instr,.insn r 51$(comma) 0$(comma) 0$(comma) t0$(comma) t0$(comma) zero)
 
 source "arch/riscv/Kconfig.socs"
-source "arch/riscv/Kconfig.erratas"
+source "arch/riscv/Kconfig.errata"
 
 menu "Platform type"
 
diff --git a/arch/riscv/Kconfig.erratas b/arch/riscv/Kconfig.errata
similarity index 100%
rename from arch/riscv/Kconfig.erratas
rename to arch/riscv/Kconfig.errata
-- 
2.39.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 3/6] riscv: alternatives: Remove unnecessary define and unused struct
  2023-02-24 15:45 [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups Andrew Jones
  2023-02-24 15:45 ` [PATCH v2 1/6] riscv: Clarify RISCV_ALTERNATIVE help text Andrew Jones
  2023-02-24 15:45 ` [PATCH v2 2/6] riscv: Rename Kconfig.erratas to Kconfig.errata Andrew Jones
@ 2023-02-24 15:45 ` Andrew Jones
  2023-02-24 15:45 ` [PATCH v2 4/6] riscv: alternatives: Rename errata_id to patch_id Andrew Jones
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Andrew Jones @ 2023-02-24 15:45 UTC (permalink / raw)
  To: linux-riscv
  Cc: 'Paul Walmsley ', 'Jisheng Zhang ',
	'Palmer Dabbelt ', 'Heiko Stuebner ',
	'Conor Dooley ', 'Albert Ou ',
	Heiko Stuebner

A define and a struct were introduced with commit 6f4eea90465a
("riscv: Introduce alternative mechanism to apply errata solution"),
which introduced alternatives to RISC-V. The define is used for
an arbitrary string length, specific to sifive errata, so just use
the number directly there instead. The struct has never been used,
so remove it.

Signed-off-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Heiko Stuebner <heiko.stuebner@vrull.eu>
---
 arch/riscv/errata/sifive/errata.c    | 2 +-
 arch/riscv/include/asm/alternative.h | 7 -------
 2 files changed, 1 insertion(+), 8 deletions(-)

diff --git a/arch/riscv/errata/sifive/errata.c b/arch/riscv/errata/sifive/errata.c
index da55cb247e89..69dfb38e4f06 100644
--- a/arch/riscv/errata/sifive/errata.c
+++ b/arch/riscv/errata/sifive/errata.c
@@ -14,7 +14,7 @@
 #include <asm/errata_list.h>
 
 struct errata_info_t {
-	char name[ERRATA_STRING_LENGTH_MAX];
+	char name[32];
 	bool (*check_func)(unsigned long  arch_id, unsigned long impid);
 };
 
diff --git a/arch/riscv/include/asm/alternative.h b/arch/riscv/include/asm/alternative.h
index b8648d4f2ac1..3beef400a971 100644
--- a/arch/riscv/include/asm/alternative.h
+++ b/arch/riscv/include/asm/alternative.h
@@ -6,8 +6,6 @@
 #ifndef __ASM_ALTERNATIVE_H
 #define __ASM_ALTERNATIVE_H
 
-#define ERRATA_STRING_LENGTH_MAX 32
-
 #include <asm/alternative-macros.h>
 
 #ifndef __ASSEMBLY__
@@ -43,11 +41,6 @@ struct alt_entry {
 	u32 errata_id;		/* The errata id */
 };
 
-struct errata_checkfunc_id {
-	unsigned long vendor_id;
-	bool (*func)(struct alt_entry *alt);
-};
-
 void sifive_errata_patch_func(struct alt_entry *begin, struct alt_entry *end,
 			      unsigned long archid, unsigned long impid,
 			      unsigned int stage);
-- 
2.39.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 4/6] riscv: alternatives: Rename errata_id to patch_id
  2023-02-24 15:45 [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups Andrew Jones
                   ` (2 preceding siblings ...)
  2023-02-24 15:45 ` [PATCH v2 3/6] riscv: alternatives: Remove unnecessary define and unused struct Andrew Jones
@ 2023-02-24 15:45 ` Andrew Jones
  2023-02-24 15:46 ` [PATCH v2 5/6] riscv: lib: Include hwcap.h directly Andrew Jones
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 10+ messages in thread
From: Andrew Jones @ 2023-02-24 15:45 UTC (permalink / raw)
  To: linux-riscv
  Cc: 'Paul Walmsley ', 'Jisheng Zhang ',
	'Palmer Dabbelt ', 'Heiko Stuebner ',
	'Conor Dooley ', 'Albert Ou ',
	Heiko Stuebner

Alternatives are used for both errata and cpufeatures. Use a more
generic name, 'patch_id', as in "ID of code patching site", to
avoid confusion when alternatives are used for cpufeatures.

Signed-off-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Heiko Stuebner <heiko.stuebner@vrull.eu>
---
 arch/riscv/Kconfig                          |  6 +-
 arch/riscv/errata/sifive/errata.c           |  6 +-
 arch/riscv/errata/thead/errata.c            |  4 +-
 arch/riscv/include/asm/alternative-macros.h | 72 ++++++++++-----------
 arch/riscv/include/asm/alternative.h        |  4 +-
 arch/riscv/kernel/cpufeature.c              |  6 +-
 6 files changed, 49 insertions(+), 49 deletions(-)

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 80bc960706e3..aa951fe2bc56 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -379,9 +379,9 @@ config RISCV_ALTERNATIVE
 	depends on !XIP_KERNEL
 	help
 	  This Kconfig allows the kernel to automatically patch the
-	  errata required by the execution platform at run time. The
-	  code patching overhead is minimal, as it's only done once
-	  at boot and once on each module load.
+	  erratum or cpufeature required by the execution platform at run
+	  time. The code patching overhead is minimal, as it's only done
+	  once at boot and once on each module load.
 
 config RISCV_ALTERNATIVE_EARLY
 	bool
diff --git a/arch/riscv/errata/sifive/errata.c b/arch/riscv/errata/sifive/errata.c
index 69dfb38e4f06..7fa7b8b6a811 100644
--- a/arch/riscv/errata/sifive/errata.c
+++ b/arch/riscv/errata/sifive/errata.c
@@ -101,12 +101,12 @@ void __init_or_module sifive_errata_patch_func(struct alt_entry *begin,
 	for (alt = begin; alt < end; alt++) {
 		if (alt->vendor_id != SIFIVE_VENDOR_ID)
 			continue;
-		if (alt->errata_id >= ERRATA_SIFIVE_NUMBER) {
-			WARN(1, "This errata id:%d is not in kernel errata list", alt->errata_id);
+		if (alt->patch_id >= ERRATA_SIFIVE_NUMBER) {
+			WARN(1, "This errata id:%d is not in kernel errata list", alt->patch_id);
 			continue;
 		}
 
-		tmp = (1U << alt->errata_id);
+		tmp = (1U << alt->patch_id);
 		if (cpu_req_errata & tmp) {
 			mutex_lock(&text_mutex);
 			patch_text_nosync(ALT_OLD_PTR(alt), ALT_ALT_PTR(alt),
diff --git a/arch/riscv/errata/thead/errata.c b/arch/riscv/errata/thead/errata.c
index 3b96a06d3c54..7e8d50ebb71a 100644
--- a/arch/riscv/errata/thead/errata.c
+++ b/arch/riscv/errata/thead/errata.c
@@ -93,10 +93,10 @@ void __init_or_module thead_errata_patch_func(struct alt_entry *begin, struct al
 	for (alt = begin; alt < end; alt++) {
 		if (alt->vendor_id != THEAD_VENDOR_ID)
 			continue;
-		if (alt->errata_id >= ERRATA_THEAD_NUMBER)
+		if (alt->patch_id >= ERRATA_THEAD_NUMBER)
 			continue;
 
-		tmp = (1U << alt->errata_id);
+		tmp = (1U << alt->patch_id);
 		if (cpu_req_errata & tmp) {
 			oldptr = ALT_OLD_PTR(alt);
 			altptr = ALT_ALT_PTR(alt);
diff --git a/arch/riscv/include/asm/alternative-macros.h b/arch/riscv/include/asm/alternative-macros.h
index 51c6867e02f3..993a44a8fdac 100644
--- a/arch/riscv/include/asm/alternative-macros.h
+++ b/arch/riscv/include/asm/alternative-macros.h
@@ -6,18 +6,18 @@
 
 #ifdef __ASSEMBLY__
 
-.macro ALT_ENTRY oldptr newptr vendor_id errata_id new_len
+.macro ALT_ENTRY oldptr newptr vendor_id patch_id new_len
 	.4byte \oldptr - .
 	.4byte \newptr - .
 	.2byte \vendor_id
 	.2byte \new_len
-	.4byte \errata_id
+	.4byte \patch_id
 .endm
 
-.macro ALT_NEW_CONTENT vendor_id, errata_id, enable = 1, new_c : vararg
+.macro ALT_NEW_CONTENT vendor_id, patch_id, enable = 1, new_c : vararg
 	.if \enable
 	.pushsection .alternative, "a"
-	ALT_ENTRY 886b, 888f, \vendor_id, \errata_id, 889f - 888f
+	ALT_ENTRY 886b, 888f, \vendor_id, \patch_id, 889f - 888f
 	.popsection
 	.subsection 1
 888 :
@@ -33,7 +33,7 @@
 	.endif
 .endm
 
-.macro ALTERNATIVE_CFG old_c, new_c, vendor_id, errata_id, enable
+.macro ALTERNATIVE_CFG old_c, new_c, vendor_id, patch_id, enable
 886 :
 	.option push
 	.option norvc
@@ -41,13 +41,13 @@
 	\old_c
 	.option pop
 887 :
-	ALT_NEW_CONTENT \vendor_id, \errata_id, \enable, \new_c
+	ALT_NEW_CONTENT \vendor_id, \patch_id, \enable, \new_c
 .endm
 
-.macro ALTERNATIVE_CFG_2 old_c, new_c_1, vendor_id_1, errata_id_1, enable_1,	\
-				new_c_2, vendor_id_2, errata_id_2, enable_2
-	ALTERNATIVE_CFG "\old_c", "\new_c_1", \vendor_id_1, \errata_id_1, \enable_1
-	ALT_NEW_CONTENT \vendor_id_2, \errata_id_2, \enable_2, \new_c_2
+.macro ALTERNATIVE_CFG_2 old_c, new_c_1, vendor_id_1, patch_id_1, enable_1,	\
+				new_c_2, vendor_id_2, patch_id_2, enable_2
+	ALTERNATIVE_CFG "\old_c", "\new_c_1", \vendor_id_1, \patch_id_1, \enable_1
+	ALT_NEW_CONTENT \vendor_id_2, \patch_id_2, \enable_2, \new_c_2
 .endm
 
 #define __ALTERNATIVE_CFG(...)		ALTERNATIVE_CFG __VA_ARGS__
@@ -58,17 +58,17 @@
 #include <asm/asm.h>
 #include <linux/stringify.h>
 
-#define ALT_ENTRY(oldptr, newptr, vendor_id, errata_id, newlen)		\
+#define ALT_ENTRY(oldptr, newptr, vendor_id, patch_id, newlen)		\
 	".4byte	((" oldptr ") - .) \n"					\
 	".4byte	((" newptr ") - .) \n"					\
 	".2byte	" vendor_id "\n"					\
 	".2byte " newlen "\n"						\
-	".4byte	" errata_id "\n"
+	".4byte	" patch_id "\n"
 
-#define ALT_NEW_CONTENT(vendor_id, errata_id, enable, new_c)		\
+#define ALT_NEW_CONTENT(vendor_id, patch_id, enable, new_c)		\
 	".if " __stringify(enable) " == 1\n"				\
 	".pushsection .alternative, \"a\"\n"				\
-	ALT_ENTRY("886b", "888f", __stringify(vendor_id), __stringify(errata_id), "889f - 888f") \
+	ALT_ENTRY("886b", "888f", __stringify(vendor_id), __stringify(patch_id), "889f - 888f") \
 	".popsection\n"							\
 	".subsection 1\n"						\
 	"888 :\n"							\
@@ -83,7 +83,7 @@
 	".previous\n"							\
 	".endif\n"
 
-#define __ALTERNATIVE_CFG(old_c, new_c, vendor_id, errata_id, enable)	\
+#define __ALTERNATIVE_CFG(old_c, new_c, vendor_id, patch_id, enable)	\
 	"886 :\n"							\
 	".option push\n"						\
 	".option norvc\n"						\
@@ -91,22 +91,22 @@
 	old_c "\n"							\
 	".option pop\n"							\
 	"887 :\n"							\
-	ALT_NEW_CONTENT(vendor_id, errata_id, enable, new_c)
+	ALT_NEW_CONTENT(vendor_id, patch_id, enable, new_c)
 
-#define __ALTERNATIVE_CFG_2(old_c, new_c_1, vendor_id_1, errata_id_1, enable_1,	\
-				   new_c_2, vendor_id_2, errata_id_2, enable_2)	\
-	__ALTERNATIVE_CFG(old_c, new_c_1, vendor_id_1, errata_id_1, enable_1)	\
-	ALT_NEW_CONTENT(vendor_id_2, errata_id_2, enable_2, new_c_2)
+#define __ALTERNATIVE_CFG_2(old_c, new_c_1, vendor_id_1, patch_id_1, enable_1,	\
+				   new_c_2, vendor_id_2, patch_id_2, enable_2)	\
+	__ALTERNATIVE_CFG(old_c, new_c_1, vendor_id_1, patch_id_1, enable_1)	\
+	ALT_NEW_CONTENT(vendor_id_2, patch_id_2, enable_2, new_c_2)
 
 #endif /* __ASSEMBLY__ */
 
-#define _ALTERNATIVE_CFG(old_c, new_c, vendor_id, errata_id, CONFIG_k)	\
-	__ALTERNATIVE_CFG(old_c, new_c, vendor_id, errata_id, IS_ENABLED(CONFIG_k))
+#define _ALTERNATIVE_CFG(old_c, new_c, vendor_id, patch_id, CONFIG_k)	\
+	__ALTERNATIVE_CFG(old_c, new_c, vendor_id, patch_id, IS_ENABLED(CONFIG_k))
 
-#define _ALTERNATIVE_CFG_2(old_c, new_c_1, vendor_id_1, errata_id_1, CONFIG_k_1,		\
-				  new_c_2, vendor_id_2, errata_id_2, CONFIG_k_2)		\
-	__ALTERNATIVE_CFG_2(old_c, new_c_1, vendor_id_1, errata_id_1, IS_ENABLED(CONFIG_k_1),	\
-				   new_c_2, vendor_id_2, errata_id_2, IS_ENABLED(CONFIG_k_2))
+#define _ALTERNATIVE_CFG_2(old_c, new_c_1, vendor_id_1, patch_id_1, CONFIG_k_1,		\
+				  new_c_2, vendor_id_2, patch_id_2, CONFIG_k_2)		\
+	__ALTERNATIVE_CFG_2(old_c, new_c_1, vendor_id_1, patch_id_1, IS_ENABLED(CONFIG_k_1),	\
+				   new_c_2, vendor_id_2, patch_id_2, IS_ENABLED(CONFIG_k_2))
 
 #else /* CONFIG_RISCV_ALTERNATIVE */
 #ifdef __ASSEMBLY__
@@ -137,19 +137,19 @@
 
 /*
  * Usage:
- *   ALTERNATIVE(old_content, new_content, vendor_id, errata_id, CONFIG_k)
+ *   ALTERNATIVE(old_content, new_content, vendor_id, patch_id, CONFIG_k)
  * in the assembly code. Otherwise,
- *   asm(ALTERNATIVE(old_content, new_content, vendor_id, errata_id, CONFIG_k));
+ *   asm(ALTERNATIVE(old_content, new_content, vendor_id, patch_id, CONFIG_k));
  *
  * old_content: The old content which is probably replaced with new content.
  * new_content: The new content.
  * vendor_id: The CPU vendor ID.
- * errata_id: The errata ID.
- * CONFIG_k: The Kconfig of this errata. When Kconfig is disabled, the old
+ * patch_id: The patch ID (erratum ID or cpufeature ID).
+ * CONFIG_k: The Kconfig of this patch ID. When Kconfig is disabled, the old
  *	     content will alwyas be executed.
  */
-#define ALTERNATIVE(old_content, new_content, vendor_id, errata_id, CONFIG_k) \
-	_ALTERNATIVE_CFG(old_content, new_content, vendor_id, errata_id, CONFIG_k)
+#define ALTERNATIVE(old_content, new_content, vendor_id, patch_id, CONFIG_k) \
+	_ALTERNATIVE_CFG(old_content, new_content, vendor_id, patch_id, CONFIG_k)
 
 /*
  * A vendor wants to replace an old_content, but another vendor has used
@@ -158,9 +158,9 @@
  * on the following sample code and then replace ALTERNATIVE() with
  * ALTERNATIVE_2() to append its customized content.
  */
-#define ALTERNATIVE_2(old_content, new_content_1, vendor_id_1, errata_id_1, CONFIG_k_1,		\
-				   new_content_2, vendor_id_2, errata_id_2, CONFIG_k_2)		\
-	_ALTERNATIVE_CFG_2(old_content, new_content_1, vendor_id_1, errata_id_1, CONFIG_k_1,	\
-					new_content_2, vendor_id_2, errata_id_2, CONFIG_k_2)
+#define ALTERNATIVE_2(old_content, new_content_1, vendor_id_1, patch_id_1, CONFIG_k_1,		\
+				   new_content_2, vendor_id_2, patch_id_2, CONFIG_k_2)		\
+	_ALTERNATIVE_CFG_2(old_content, new_content_1, vendor_id_1, patch_id_1, CONFIG_k_1,	\
+					new_content_2, vendor_id_2, patch_id_2, CONFIG_k_2)
 
 #endif
diff --git a/arch/riscv/include/asm/alternative.h b/arch/riscv/include/asm/alternative.h
index 3beef400a971..c8dea9e94310 100644
--- a/arch/riscv/include/asm/alternative.h
+++ b/arch/riscv/include/asm/alternative.h
@@ -36,9 +36,9 @@ void riscv_alternative_fix_offsets(void *alt_ptr, unsigned int len,
 struct alt_entry {
 	s32 old_offset;		/* offset relative to original instruction or data  */
 	s32 alt_offset;		/* offset relative to replacement instruction or data */
-	u16 vendor_id;		/* cpu vendor id */
+	u16 vendor_id;		/* CPU vendor ID */
 	u16 alt_len;		/* The replacement size */
-	u32 errata_id;		/* The errata id */
+	u32 patch_id;		/* The patch ID (erratum ID or cpufeature ID) */
 };
 
 void sifive_errata_patch_func(struct alt_entry *begin, struct alt_entry *end,
diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
index 59d58ee0f68d..059db20b28ca 100644
--- a/arch/riscv/kernel/cpufeature.c
+++ b/arch/riscv/kernel/cpufeature.c
@@ -282,13 +282,13 @@ void __init_or_module riscv_cpufeature_patch_func(struct alt_entry *begin,
 	for (alt = begin; alt < end; alt++) {
 		if (alt->vendor_id != 0)
 			continue;
-		if (alt->errata_id >= RISCV_ISA_EXT_MAX) {
+		if (alt->patch_id >= RISCV_ISA_EXT_MAX) {
 			WARN(1, "This extension id:%d is not in ISA extension list",
-				alt->errata_id);
+				alt->patch_id);
 			continue;
 		}
 
-		if (!__riscv_isa_extension_available(NULL, alt->errata_id))
+		if (!__riscv_isa_extension_available(NULL, alt->patch_id))
 			continue;
 
 		oldptr = ALT_OLD_PTR(alt);
-- 
2.39.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 5/6] riscv: lib: Include hwcap.h directly
  2023-02-24 15:45 [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups Andrew Jones
                   ` (3 preceding siblings ...)
  2023-02-24 15:45 ` [PATCH v2 4/6] riscv: alternatives: Rename errata_id to patch_id Andrew Jones
@ 2023-02-24 15:46 ` Andrew Jones
  2023-02-24 15:46 ` [PATCH v2 6/6] riscv: cpufeature: Drop errata_list.h and other unused includes Andrew Jones
  2023-03-18  1:00 ` [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups patchwork-bot+linux-riscv
  6 siblings, 0 replies; 10+ messages in thread
From: Andrew Jones @ 2023-02-24 15:46 UTC (permalink / raw)
  To: linux-riscv
  Cc: 'Paul Walmsley ', 'Jisheng Zhang ',
	'Palmer Dabbelt ', 'Heiko Stuebner ',
	'Conor Dooley ', 'Albert Ou ',
	Heiko Stuebner

When using alternatives for cpufeatures we should include hwcap.h
directly, rather than through errata_list.h. Opportunistically drop
an unused include too.

Signed-off-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Heiko Stuebner <heiko.stuebner@vrull.eu>
---
 arch/riscv/lib/strcmp.S  | 3 +--
 arch/riscv/lib/strlen.S  | 3 +--
 arch/riscv/lib/strncmp.S | 3 +--
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/arch/riscv/lib/strcmp.S b/arch/riscv/lib/strcmp.S
index 986ab23fe787..4f9b80dfb5db 100644
--- a/arch/riscv/lib/strcmp.S
+++ b/arch/riscv/lib/strcmp.S
@@ -2,9 +2,8 @@
 
 #include <linux/linkage.h>
 #include <asm/asm.h>
-#include <asm-generic/export.h>
 #include <asm/alternative-macros.h>
-#include <asm/errata_list.h>
+#include <asm/hwcap.h>
 
 /* int strcmp(const char *cs, const char *ct) */
 SYM_FUNC_START(strcmp)
diff --git a/arch/riscv/lib/strlen.S b/arch/riscv/lib/strlen.S
index 8345ceeee3f6..ed78449f2e05 100644
--- a/arch/riscv/lib/strlen.S
+++ b/arch/riscv/lib/strlen.S
@@ -2,9 +2,8 @@
 
 #include <linux/linkage.h>
 #include <asm/asm.h>
-#include <asm-generic/export.h>
 #include <asm/alternative-macros.h>
-#include <asm/errata_list.h>
+#include <asm/hwcap.h>
 
 /* int strlen(const char *s) */
 SYM_FUNC_START(strlen)
diff --git a/arch/riscv/lib/strncmp.S b/arch/riscv/lib/strncmp.S
index ee49595075be..e4e97d9b4e4e 100644
--- a/arch/riscv/lib/strncmp.S
+++ b/arch/riscv/lib/strncmp.S
@@ -2,9 +2,8 @@
 
 #include <linux/linkage.h>
 #include <asm/asm.h>
-#include <asm-generic/export.h>
 #include <asm/alternative-macros.h>
-#include <asm/errata_list.h>
+#include <asm/hwcap.h>
 
 /* int strncmp(const char *cs, const char *ct, size_t count) */
 SYM_FUNC_START(strncmp)
-- 
2.39.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 6/6] riscv: cpufeature: Drop errata_list.h and other unused includes
  2023-02-24 15:45 [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups Andrew Jones
                   ` (4 preceding siblings ...)
  2023-02-24 15:46 ` [PATCH v2 5/6] riscv: lib: Include hwcap.h directly Andrew Jones
@ 2023-02-24 15:46 ` Andrew Jones
  2023-03-18  1:00 ` [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups patchwork-bot+linux-riscv
  6 siblings, 0 replies; 10+ messages in thread
From: Andrew Jones @ 2023-02-24 15:46 UTC (permalink / raw)
  To: linux-riscv
  Cc: 'Paul Walmsley ', 'Jisheng Zhang ',
	'Palmer Dabbelt ', 'Heiko Stuebner ',
	'Conor Dooley ', 'Albert Ou ',
	Heiko Stuebner

Drop errata_list.h, since cpufeature.c includes hwcap.h directly to
get cpufeature IDs. And, while there, prune the rest of the unused
includes too.

Signed-off-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Heiko Stuebner <heiko.stuebner@vrull.eu>
---
 arch/riscv/kernel/cpufeature.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
index 059db20b28ca..6569d963fc7d 100644
--- a/arch/riscv/kernel/cpufeature.c
+++ b/arch/riscv/kernel/cpufeature.c
@@ -8,20 +8,15 @@
 
 #include <linux/bitmap.h>
 #include <linux/ctype.h>
-#include <linux/libfdt.h>
 #include <linux/log2.h>
 #include <linux/memory.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <asm/alternative.h>
 #include <asm/cacheflush.h>
-#include <asm/errata_list.h>
 #include <asm/hwcap.h>
 #include <asm/patch.h>
-#include <asm/pgtable.h>
 #include <asm/processor.h>
-#include <asm/smp.h>
-#include <asm/switch_to.h>
 
 #define NUM_ALPHA_EXTS ('z' - 'a' + 1)
 
-- 
2.39.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 2/6] riscv: Rename Kconfig.erratas to Kconfig.errata
  2023-02-24 15:45 ` [PATCH v2 2/6] riscv: Rename Kconfig.erratas to Kconfig.errata Andrew Jones
@ 2023-02-24 15:53   ` Ben Dooks
  2023-03-15  4:35     ` Palmer Dabbelt
  0 siblings, 1 reply; 10+ messages in thread
From: Ben Dooks @ 2023-02-24 15:53 UTC (permalink / raw)
  To: Andrew Jones, linux-riscv
  Cc: 'Paul Walmsley ', 'Jisheng Zhang ',
	'Palmer Dabbelt ', 'Heiko Stuebner ',
	'Conor Dooley ', 'Albert Ou ',
	Heiko Stuebner

On 24/02/2023 15:45, Andrew Jones wrote:
> Errata is already plural for erratum. Rename it to make the
> grammar gooder.

gooder o_o

let's just go emjoi (╯°□°)╯︵ ┻━┻

-- 
Ben Dooks				http://www.codethink.co.uk/
Senior Engineer				Codethink - Providing Genius

https://www.codethink.co.uk/privacy.html


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 2/6] riscv: Rename Kconfig.erratas to Kconfig.errata
  2023-02-24 15:53   ` Ben Dooks
@ 2023-03-15  4:35     ` Palmer Dabbelt
  0 siblings, 0 replies; 10+ messages in thread
From: Palmer Dabbelt @ 2023-03-15  4:35 UTC (permalink / raw)
  To: ben.dooks
  Cc: ajones, linux-riscv, Paul Walmsley, jszhang, heiko, Conor Dooley,
	aou, heiko.stuebner

On Fri, 24 Feb 2023 07:53:48 PST (-0800), ben.dooks@codethink.co.uk wrote:
> On 24/02/2023 15:45, Andrew Jones wrote:
>> Errata is already plural for erratum. Rename it to make the
>> grammar gooder.
>
> gooder o_o

Thanks, this one bugged me every time I saw it.

>
> let's just go emjoi (╯°□°)╯︵ ┻━┻
>
> -- 
> Ben Dooks				http://www.codethink.co.uk/
> Senior Engineer				Codethink - Providing Genius
>
> https://www.codethink.co.uk/privacy.html
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups
  2023-02-24 15:45 [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups Andrew Jones
                   ` (5 preceding siblings ...)
  2023-02-24 15:46 ` [PATCH v2 6/6] riscv: cpufeature: Drop errata_list.h and other unused includes Andrew Jones
@ 2023-03-18  1:00 ` patchwork-bot+linux-riscv
  6 siblings, 0 replies; 10+ messages in thread
From: patchwork-bot+linux-riscv @ 2023-03-18  1:00 UTC (permalink / raw)
  To: Andrew Jones
  Cc: linux-riscv, paul.walmsley, jszhang, palmer, heiko, conor.dooley, aou

Hello:

This series was applied to riscv/linux.git (for-next)
by Palmer Dabbelt <palmer@rivosinc.com>:

On Fri, 24 Feb 2023 16:45:55 +0100 you wrote:
> This series has no intended functional change. These cleanups were
> found while renaming errata_id to patch_id in order to better
> convey that its purpose is larger than errata (it's also for
> cpufeatures).
> 
> Based on riscv-linux/for-next
> 
> [...]

Here is the summary with links:
  - [v2,1/6] riscv: Clarify RISCV_ALTERNATIVE help text
    https://git.kernel.org/riscv/c/099122af4e29
  - [v2,2/6] riscv: Rename Kconfig.erratas to Kconfig.errata
    https://git.kernel.org/riscv/c/a3d095ac00fa
  - [v2,3/6] riscv: alternatives: Remove unnecessary define and unused struct
    https://git.kernel.org/riscv/c/ce06b42a4a96
  - [v2,4/6] riscv: alternatives: Rename errata_id to patch_id
    https://git.kernel.org/riscv/c/ff19a8dee196
  - [v2,5/6] riscv: lib: Include hwcap.h directly
    https://git.kernel.org/riscv/c/28ea374da1d9
  - [v2,6/6] riscv: cpufeature: Drop errata_list.h and other unused includes
    https://git.kernel.org/riscv/c/816a69744102

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-03-18  1:00 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-24 15:45 [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups Andrew Jones
2023-02-24 15:45 ` [PATCH v2 1/6] riscv: Clarify RISCV_ALTERNATIVE help text Andrew Jones
2023-02-24 15:45 ` [PATCH v2 2/6] riscv: Rename Kconfig.erratas to Kconfig.errata Andrew Jones
2023-02-24 15:53   ` Ben Dooks
2023-03-15  4:35     ` Palmer Dabbelt
2023-02-24 15:45 ` [PATCH v2 3/6] riscv: alternatives: Remove unnecessary define and unused struct Andrew Jones
2023-02-24 15:45 ` [PATCH v2 4/6] riscv: alternatives: Rename errata_id to patch_id Andrew Jones
2023-02-24 15:46 ` [PATCH v2 5/6] riscv: lib: Include hwcap.h directly Andrew Jones
2023-02-24 15:46 ` [PATCH v2 6/6] riscv: cpufeature: Drop errata_list.h and other unused includes Andrew Jones
2023-03-18  1:00 ` [PATCH v2 0/6] riscv: alternative/cpufeature related cleanups patchwork-bot+linux-riscv

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).