On Wed, Oct 28, 2020 at 11:22:06AM +0000, Catalin Marinas wrote: > On Wed, Oct 28, 2020 at 11:17:13AM +0000, Will Deacon wrote: > > On Wed, Oct 28, 2020 at 11:12:04AM +0000, Catalin Marinas wrote: > > > On Tue, Oct 27, 2020 at 09:51:14PM +0000, Will Deacon wrote: > > > > +static bool has_32bit_el0(const struct arm64_cpu_capabilities *entry, int scope) > > > > +{ > > > > + return has_cpuid_feature(entry, scope) || __allow_mismatched_32bit_el0; > > > > +} > > > > + > > > > static bool has_useable_gicv3_cpuif(const struct arm64_cpu_capabilities *entry, int scope) > > > > { > > > > bool has_sre; > > > > @@ -1803,7 +1851,7 @@ static const struct arm64_cpu_capabilities arm64_features[] = { > > > > .desc = "32-bit EL0 Support", > > > > .capability = ARM64_HAS_32BIT_EL0, > > > > .type = ARM64_CPUCAP_SYSTEM_FEATURE, > > > > - .matches = has_cpuid_feature, > > > > + .matches = has_32bit_el0, > > > > > > Ah, so this one reports 32-bit EL0 support even if no CPU actually > > > supports 32-bit (passing the command line option on TX2 would come up > > > with 32-bit EL0 in dmesg). I'd rather hide the .desc above and print the > > > information elsewhere when have at least one CPU supporting this. > > > > Yeah, the problem is if a CPU with 32-bit EL0 support was late-onlined, > > then we would have 32-bit support, so I think this is an oddity that you > > get when the command line is passed. That said, I could nobble .desc and > > print it from the .matches function, with a slightly different message > > when the command line is passed. > > I think we could do a pr_info_once() in update_32bit_cpu_features(). Is that called on a system with one CPU? Will