powerpc/mm: Add early_[cpu|mmu]_has_feature()
In later patches, we will be switching CPU and MMU feature checks to use static keys. For checks in early boot before jump label is initialized we need a variant of [cpu|mmu]_has_feature() that doesn't use jump labels. So create those called, unimaginatively, early_[cpu|mmu]_has_feature(). Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
bab4c8de62
commit
a141cca389
|
@ -577,12 +577,17 @@ enum {
|
||||||
};
|
};
|
||||||
#endif /* __powerpc64__ */
|
#endif /* __powerpc64__ */
|
||||||
|
|
||||||
static inline bool cpu_has_feature(unsigned long feature)
|
static inline bool early_cpu_has_feature(unsigned long feature)
|
||||||
{
|
{
|
||||||
return !!((CPU_FTRS_ALWAYS & feature) ||
|
return !!((CPU_FTRS_ALWAYS & feature) ||
|
||||||
(CPU_FTRS_POSSIBLE & cur_cpu_spec->cpu_features & feature));
|
(CPU_FTRS_POSSIBLE & cur_cpu_spec->cpu_features & feature));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool cpu_has_feature(unsigned long feature)
|
||||||
|
{
|
||||||
|
return early_cpu_has_feature(feature);
|
||||||
|
}
|
||||||
|
|
||||||
#define HBP_NUM 1
|
#define HBP_NUM 1
|
||||||
|
|
||||||
#endif /* !__ASSEMBLY__ */
|
#endif /* !__ASSEMBLY__ */
|
||||||
|
|
|
@ -135,11 +135,16 @@ enum {
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline bool mmu_has_feature(unsigned long feature)
|
static inline bool early_mmu_has_feature(unsigned long feature)
|
||||||
{
|
{
|
||||||
return !!(MMU_FTRS_POSSIBLE & cur_cpu_spec->mmu_features & feature);
|
return !!(MMU_FTRS_POSSIBLE & cur_cpu_spec->mmu_features & feature);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool mmu_has_feature(unsigned long feature)
|
||||||
|
{
|
||||||
|
return early_mmu_has_feature(feature);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void mmu_clear_feature(unsigned long feature)
|
static inline void mmu_clear_feature(unsigned long feature)
|
||||||
{
|
{
|
||||||
cur_cpu_spec->mmu_features &= ~feature;
|
cur_cpu_spec->mmu_features &= ~feature;
|
||||||
|
@ -168,11 +173,21 @@ static inline bool radix_enabled(void)
|
||||||
{
|
{
|
||||||
return mmu_has_feature(MMU_FTR_TYPE_RADIX);
|
return mmu_has_feature(MMU_FTR_TYPE_RADIX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool early_radix_enabled(void)
|
||||||
|
{
|
||||||
|
return early_mmu_has_feature(MMU_FTR_TYPE_RADIX);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
static inline bool radix_enabled(void)
|
static inline bool radix_enabled(void)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool early_radix_enabled(void)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* !__ASSEMBLY__ */
|
#endif /* !__ASSEMBLY__ */
|
||||||
|
|
Loading…
Reference in New Issue