mirror of https://gitee.com/openkylin/linux.git
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__ */
|
||||
|
||||
static inline bool cpu_has_feature(unsigned long feature)
|
||||
static inline bool early_cpu_has_feature(unsigned long feature)
|
||||
{
|
||||
return !!((CPU_FTRS_ALWAYS & 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
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
|
|
@ -135,11 +135,16 @@ enum {
|
|||
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);
|
||||
}
|
||||
|
||||
static inline bool mmu_has_feature(unsigned long feature)
|
||||
{
|
||||
return early_mmu_has_feature(feature);
|
||||
}
|
||||
|
||||
static inline void mmu_clear_feature(unsigned long 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);
|
||||
}
|
||||
|
||||
static inline bool early_radix_enabled(void)
|
||||
{
|
||||
return early_mmu_has_feature(MMU_FTR_TYPE_RADIX);
|
||||
}
|
||||
#else
|
||||
static inline bool radix_enabled(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline bool early_radix_enabled(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
|
Loading…
Reference in New Issue