diff options
Diffstat (limited to 'arch/sparc/kernel/sun4m_smp.c')
-rw-r--r-- | arch/sparc/kernel/sun4m_smp.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/arch/sparc/kernel/sun4m_smp.c b/arch/sparc/kernel/sun4m_smp.c index ec1ef424b..597ee7665 100644 --- a/arch/sparc/kernel/sun4m_smp.c +++ b/arch/sparc/kernel/sun4m_smp.c @@ -3,7 +3,6 @@ * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) */ -#include <linux/config.h> /* for CONFIG_PROFILE */ #include <asm/head.h> #include <linux/kernel.h> @@ -433,8 +432,6 @@ void smp4m_cross_call_irq(void) /* Protects counters touched during level14 ticker */ static spinlock_t ticker_lock = SPIN_LOCK_UNLOCKED; -#ifdef CONFIG_PROFILE - /* 32-bit Sparc specific profiling function. */ static inline void sparc_do_profile(unsigned long pc) { @@ -453,8 +450,6 @@ static inline void sparc_do_profile(unsigned long pc) } } -#endif - extern unsigned int prof_multiplier[NR_CPUS]; extern unsigned int prof_counter[NR_CPUS]; @@ -467,10 +462,10 @@ void smp4m_percpu_timer_interrupt(struct pt_regs *regs) int cpu = smp_processor_id(); clear_profile_irq(mid_xlate[cpu]); -#ifdef CONFIG_PROFILE + if(!user_mode(regs)) sparc_do_profile(regs->pc); -#endif + if(!--prof_counter[cpu]) { int user = user_mode(regs); if(current->pid) { @@ -478,7 +473,7 @@ void smp4m_percpu_timer_interrupt(struct pt_regs *regs) if(--current->counter < 0) { current->counter = 0; - need_resched = 1; + current->need_resched = 1; } spin_lock(&ticker_lock); |