|
@@ -28,7 +28,7 @@ bool has_fpu __read_mostly;
|
|
|
|
|
|
void riscv_fill_hwcap(void)
|
|
|
{
|
|
|
- struct device_node *node;
|
|
|
+ struct device_node *node = NULL;
|
|
|
const char *isa;
|
|
|
size_t i;
|
|
|
static unsigned long isa2hwcap[256] = {0};
|
|
@@ -44,9 +44,11 @@ void riscv_fill_hwcap(void)
|
|
|
|
|
|
/*
|
|
|
* We don't support running Linux on hertergenous ISA systems. For
|
|
|
- * now, we just check the ISA of the first processor.
|
|
|
+ * now, we just check the ISA of the first "okay" processor.
|
|
|
*/
|
|
|
- node = of_find_node_by_type(NULL, "cpu");
|
|
|
+ while ((node = of_find_node_by_type(node, "cpu")))
|
|
|
+ if (riscv_of_processor_hartid(node) >= 0)
|
|
|
+ break;
|
|
|
if (!node) {
|
|
|
pr_warning("Unable to find \"cpu\" devicetree entry");
|
|
|
return;
|