Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a141cca3 authored by Michael Ellerman's avatar Michael Ellerman
Browse files

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: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent bab4c8de
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -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__ */
+16 −1
Original line number Diff line number Diff line
@@ -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__ */