|
@@ -771,7 +771,7 @@ static void __init setup_cpu_hwcaps(void)
|
|
|
int i;
|
|
|
const struct arm64_cpu_capabilities *hwcaps = arm64_hwcaps;
|
|
|
|
|
|
- for (i = 0; hwcaps[i].desc; i++)
|
|
|
+ for (i = 0; hwcaps[i].matches; i++)
|
|
|
if (hwcaps[i].matches(&hwcaps[i]))
|
|
|
cap_set_hwcap(&hwcaps[i]);
|
|
|
}
|
|
@@ -781,11 +781,11 @@ void update_cpu_capabilities(const struct arm64_cpu_capabilities *caps,
|
|
|
{
|
|
|
int i;
|
|
|
|
|
|
- for (i = 0; caps[i].desc; i++) {
|
|
|
+ for (i = 0; caps[i].matches; i++) {
|
|
|
if (!caps[i].matches(&caps[i]))
|
|
|
continue;
|
|
|
|
|
|
- if (!cpus_have_cap(caps[i].capability))
|
|
|
+ if (!cpus_have_cap(caps[i].capability) && caps[i].desc)
|
|
|
pr_info("%s %s\n", info, caps[i].desc);
|
|
|
cpus_set_cap(caps[i].capability);
|
|
|
}
|
|
@@ -800,7 +800,7 @@ enable_cpu_capabilities(const struct arm64_cpu_capabilities *caps)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
|
- for (i = 0; caps[i].desc; i++)
|
|
|
+ for (i = 0; caps[i].matches; i++)
|
|
|
if (caps[i].enable && cpus_have_cap(caps[i].capability))
|
|
|
on_each_cpu(caps[i].enable, NULL, true);
|
|
|
}
|
|
@@ -907,7 +907,7 @@ void verify_local_cpu_capabilities(void)
|
|
|
return;
|
|
|
|
|
|
caps = arm64_features;
|
|
|
- for (i = 0; caps[i].desc; i++) {
|
|
|
+ for (i = 0; caps[i].matches; i++) {
|
|
|
if (!cpus_have_cap(caps[i].capability) || !caps[i].sys_reg)
|
|
|
continue;
|
|
|
/*
|
|
@@ -920,7 +920,7 @@ void verify_local_cpu_capabilities(void)
|
|
|
caps[i].enable(NULL);
|
|
|
}
|
|
|
|
|
|
- for (i = 0, caps = arm64_hwcaps; caps[i].desc; i++) {
|
|
|
+ for (i = 0, caps = arm64_hwcaps; caps[i].matches; i++) {
|
|
|
if (!cpus_have_hwcap(&caps[i]))
|
|
|
continue;
|
|
|
if (!feature_matches(__raw_read_system_reg(caps[i].sys_reg), &caps[i]))
|