diff options
| -rw-r--r-- | arch/riscv/kernel/cpufeature.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c index 5493f3228704..0339087aa652 100644 --- a/arch/riscv/kernel/cpufeature.c +++ b/arch/riscv/kernel/cpufeature.c | |||
| @@ -28,7 +28,7 @@ bool has_fpu __read_mostly; | |||
| 28 | 28 | ||
| 29 | void riscv_fill_hwcap(void) | 29 | void riscv_fill_hwcap(void) |
| 30 | { | 30 | { |
| 31 | struct device_node *node; | 31 | struct device_node *node = NULL; |
| 32 | const char *isa; | 32 | const char *isa; |
| 33 | size_t i; | 33 | size_t i; |
| 34 | static unsigned long isa2hwcap[256] = {0}; | 34 | static unsigned long isa2hwcap[256] = {0}; |
| @@ -44,9 +44,11 @@ void riscv_fill_hwcap(void) | |||
| 44 | 44 | ||
| 45 | /* | 45 | /* |
| 46 | * We don't support running Linux on hertergenous ISA systems. For | 46 | * We don't support running Linux on hertergenous ISA systems. For |
| 47 | * now, we just check the ISA of the first processor. | 47 | * now, we just check the ISA of the first "okay" processor. |
| 48 | */ | 48 | */ |
| 49 | node = of_find_node_by_type(NULL, "cpu"); | 49 | while ((node = of_find_node_by_type(node, "cpu"))) |
| 50 | if (riscv_of_processor_hartid(node) >= 0) | ||
| 51 | break; | ||
| 50 | if (!node) { | 52 | if (!node) { |
| 51 | pr_warning("Unable to find \"cpu\" devicetree entry"); | 53 | pr_warning("Unable to find \"cpu\" devicetree entry"); |
| 52 | return; | 54 | return; |
