2023-06-07 06:13:04

by Jiaxun Yang

[permalink] [raw]
Subject: [PATCH] MIPS: cpu-features: Use boot_cpu_type for CPU type based features

Some CPU feature macros were using current_cpu_type to mark feature
availability.

However current_cpu_type will use smp_processor_id, which is prohibited
under preemptable context.

Since those features are all uniform on all CPUs in a SMP system, use
boot_cpu_type instead of current_cpu_type to fix preemptable kernel.

Cc: [email protected]
Signed-off-by: Jiaxun Yang <[email protected]>
---
arch/mips/include/asm/cpu-features.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h
index 2a0b90077b50..8c6d4a87db37 100644
--- a/arch/mips/include/asm/cpu-features.h
+++ b/arch/mips/include/asm/cpu-features.h
@@ -125,7 +125,7 @@
({ \
int __res; \
\
- switch (current_cpu_type()) { \
+ switch (boot_cpu_type()) { \
case CPU_CAVIUM_OCTEON: \
case CPU_CAVIUM_OCTEON_PLUS: \
case CPU_CAVIUM_OCTEON2: \
@@ -373,7 +373,7 @@
({ \
int __res; \
\
- switch (current_cpu_type()) { \
+ switch (boot_cpu_type()) { \
case CPU_M14KC: \
case CPU_74K: \
case CPU_1074K: \
--
2.39.2 (Apple Git-143)



2023-06-09 09:59:11

by Thomas Bogendoerfer

[permalink] [raw]
Subject: Re: [PATCH] MIPS: cpu-features: Use boot_cpu_type for CPU type based features

On Wed, Jun 07, 2023 at 01:51:22PM +0800, Jiaxun Yang wrote:
> Some CPU feature macros were using current_cpu_type to mark feature
> availability.
>
> However current_cpu_type will use smp_processor_id, which is prohibited
> under preemptable context.
>
> Since those features are all uniform on all CPUs in a SMP system, use
> boot_cpu_type instead of current_cpu_type to fix preemptable kernel.
>
> Cc: [email protected]
> Signed-off-by: Jiaxun Yang <[email protected]>
> ---
> arch/mips/include/asm/cpu-features.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h
> index 2a0b90077b50..8c6d4a87db37 100644
> --- a/arch/mips/include/asm/cpu-features.h
> +++ b/arch/mips/include/asm/cpu-features.h
> @@ -125,7 +125,7 @@
> ({ \
> int __res; \
> \
> - switch (current_cpu_type()) { \
> + switch (boot_cpu_type()) { \
> case CPU_CAVIUM_OCTEON: \
> case CPU_CAVIUM_OCTEON_PLUS: \
> case CPU_CAVIUM_OCTEON2: \
> @@ -373,7 +373,7 @@
> ({ \
> int __res; \
> \
> - switch (current_cpu_type()) { \
> + switch (boot_cpu_type()) { \
> case CPU_M14KC: \
> case CPU_74K: \
> case CPU_1074K: \
> --
> 2.39.2 (Apple Git-143)

applied to mips-next.

Thomas.

--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]