parisc: Reduce overhead of parisc_requires_coherency()
Helge Deller
maintainerPATCH 1/1 parisc: Reduce overhead of parisc_requires_coherency()
Signed-off-by Helge Deller <[email protected]>
arch/parisc/include/asm/processor.h +8 -9
@@ -311,18 +311,17 @@ extern unsigned long get_wchan(struct task_struct *p);#define cpu_relax () barrier()#define cpu_relax_lowlatency () cpu_relax() -/* Used as a macro to identify the combined VIPT/PIPT cached -* CPUs which require a guarantee of coherency (no inequivalent -* aliases with different data, whether clean or not) to operate */ -static inline int parisc_requires_coherency (void ) -{ +/* +* parisc_requires_coherency() is used to identify the combined VIPT/PIPT +* cached CPUs which require a guarantee of coherency (no inequivalent aliases +* with different data, whether clean or not) to operate +*/ #ifdef CONFIG_PA8X00 -return (boot_cpu_data.cpu_type == mako) || - (boot_cpu_data.cpu_type == mako2); +extern int _parisc_requires_coherency; +#define parisc_requires_coherency () _parisc_requires_coherency#else -return 0 ; +#define parisc_requires_coherency () (0)#endif -}#endif /* __ASSEMBLY__ */
arch/parisc/kernel/processor.c +9 -1
@@ -44,6 +44,10 @@struct system_cpuinfo_parisc boot_cpu_data__read_mostly ;EXPORT_SYMBOL (boot_cpu_data); +#ifdef CONFIG_PA8X00 +int _parisc_requires_coherency__read_mostly ; +EXPORT_SYMBOL (_parisc_requires_coherency); +#endif DEFINE_PER_CPU(struct cpuinfo_parisc, cpu_data);
@@ -277,8 +281,12 @@ void __init collect_boot_cpu_data(void) boot_cpu_data.cpu_type =parisc_get_cpu_type (boot_cpu_data.hversion); boot_cpu_data.cpu_name = cpu_name_version[boot_cpu_data.cpu_type][0 ]; boot_cpu_data.family_name = cpu_name_version[boot_cpu_data.cpu_type][1 ]; -} +#ifdef CONFIG_PA8X00 + _parisc_requires_coherency = (boot_cpu_data.cpu_type == mako) || + (boot_cpu_data.cpu_type == mako2); +#endif +}/**