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

Commit 7511db9d authored by Tony Lindgren's avatar Tony Lindgren Committed by Russell King
Browse files

ARM: 6429/1: Check for is_smp for tlb_ops and cache_ops broadcast



Broadcast should not be needed when running SMP kernel on UP systems.

Also, this fixes an undefined instruction for SMP_ON_UP on earlier ARM
cores without the extended CPUID_EXT_MMFR3 register.

Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 81d11955
Loading
Loading
Loading
Loading
+17 −11
Original line number Original line Diff line number Diff line
@@ -7,17 +7,6 @@


#include <asm/cputype.h>
#include <asm/cputype.h>


/* all SMP configurations have the extended CPUID registers */
static inline int tlb_ops_need_broadcast(void)
{
	return ((read_cpuid_ext(CPUID_EXT_MMFR3) >> 12) & 0xf) < 2;
}

static inline int cache_ops_need_broadcast(void)
{
	return ((read_cpuid_ext(CPUID_EXT_MMFR3) >> 12) & 0xf) < 1;
}

/*
/*
 * Return true if we are running on a SMP platform
 * Return true if we are running on a SMP platform
 */
 */
@@ -33,4 +22,21 @@ static inline bool is_smp(void)
#endif
#endif
}
}


/* all SMP configurations have the extended CPUID registers */
static inline int tlb_ops_need_broadcast(void)
{
	if (!is_smp())
		return 0;

	return ((read_cpuid_ext(CPUID_EXT_MMFR3) >> 12) & 0xf) < 2;
}

static inline int cache_ops_need_broadcast(void)
{
	if (!is_smp())
		return 0;

	return ((read_cpuid_ext(CPUID_EXT_MMFR3) >> 12) & 0xf) < 1;
}

#endif
#endif