On Wed, Jan 04, 2017 at 05:49:02PM +0000, Suzuki K. Poulose wrote: > --- a/arch/arm64/include/asm/cpufeature.h > +++ b/arch/arm64/include/asm/cpufeature.h > @@ -29,7 +29,21 @@ > #include <linux/jump_label.h> > #include <linux/kernel.h> > > -/* CPU feature register tracking */ > +/* > + * CPU feature register tracking > + * > + * The safe value of a CPUID feature field is dependent on the implications > + * of the values assigned to it by the architecture. Based on the > relationship > + * between the values, the features are classified into 3 types. > + * > + * a) LOWER_SAFE - The value 'n+1' indicates, value 'n' and some > + * additional features. (where n >= 0). The smaller value (n) is > + * considered safer in this case. > + * b) HIGHER_SAFE - The value 'n+1' is safer than 'n' (for n>= 0). > + * c) EXACT - If the values of the feature don't have any relationship, > + * a predefined safe value is used. > + */
I don't think this text fully describes what is actually compared. You could say something that the lowest value of all the CPUs is chosen for LOWER_SAFE, highest for HIGHER_SAFE and it is expected that all CPUs have the same value for a field when EXACT is specified. -- Catalin

