diff options
Diffstat (limited to 'arch/m32r/kernel')
| -rw-r--r-- | arch/m32r/kernel/process.c | 51 | ||||
| -rw-r--r-- | arch/m32r/kernel/signal.c | 16 | ||||
| -rw-r--r-- | arch/m32r/kernel/time.c | 4 | 
3 files changed, 7 insertions, 64 deletions
| diff --git a/arch/m32r/kernel/process.c b/arch/m32r/kernel/process.c index 765d0f57c78..bde899e155d 100644 --- a/arch/m32r/kernel/process.c +++ b/arch/m32r/kernel/process.c @@ -44,36 +44,10 @@ unsigned long thread_saved_pc(struct task_struct *tsk)  	return tsk->thread.lr;  } -/* - * Powermanagement idle function, if any.. - */ -static void (*pm_idle)(void) = NULL; -  void (*pm_power_off)(void) = NULL;  EXPORT_SYMBOL(pm_power_off);  /* - * We use this is we don't have any better - * idle routine.. - */ -static void default_idle(void) -{ -	/* M32R_FIXME: Please use "cpu_sleep" mode.  */ -	cpu_relax(); -} - -/* - * On SMP it's slightly faster (but much more power-consuming!) - * to poll the ->work.need_resched flag instead of waiting for the - * cross-CPU IPI to arrive. Use this option with caution. - */ -static void poll_idle (void) -{ -	/* M32R_FIXME */ -	cpu_relax(); -} - -/*   * The idle thread. There's no useful work to be   * done, so just try to conserve power and have a   * low exit latency (ie sit in a loop waiting for @@ -84,14 +58,8 @@ void cpu_idle (void)  	/* endless idle loop with no priority at all */  	while (1) {  		rcu_idle_enter(); -		while (!need_resched()) { -			void (*idle)(void) = pm_idle; - -			if (!idle) -				idle = default_idle; - -			idle(); -		} +		while (!need_resched()) +			cpu_relax();  		rcu_idle_exit();  		schedule_preempt_disabled();  	} @@ -120,21 +88,6 @@ void machine_power_off(void)  	/* M32R_FIXME */  } -static int __init idle_setup (char *str) -{ -	if (!strncmp(str, "poll", 4)) { -		printk("using poll in idle threads.\n"); -		pm_idle = poll_idle; -	} else if (!strncmp(str, "sleep", 4)) { -		printk("using sleep in idle threads.\n"); -		pm_idle = default_idle; -	} - -	return 1; -} - -__setup("idle=", idle_setup); -  void show_regs(struct pt_regs * regs)  {  	printk("\n"); diff --git a/arch/m32r/kernel/signal.c b/arch/m32r/kernel/signal.c index 6e3c26a1607..d503568cb75 100644 --- a/arch/m32r/kernel/signal.c +++ b/arch/m32r/kernel/signal.c @@ -27,15 +27,6 @@  #define DEBUG_SIG 0 -asmlinkage int -sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, -		unsigned long r2, unsigned long r3, unsigned long r4, -		unsigned long r5, unsigned long r6, struct pt_regs *regs) -{ -	return do_sigaltstack(uss, uoss, regs->spu); -} - -  /*   * Do a signal return; undo the signal stack.   */ @@ -113,7 +104,7 @@ sys_rt_sigreturn(unsigned long r0, unsigned long r1,  	if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &result))  		goto badframe; -	if (do_sigaltstack(&frame->uc.uc_stack, NULL, regs->spu) == -EFAULT) +	if (restore_altstack(&frame->uc.uc_stack))  		goto badframe;  	return result; @@ -213,10 +204,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,  	/* Create the ucontext.  */  	err |= __put_user(0, &frame->uc.uc_flags);  	err |= __put_user(0, &frame->uc.uc_link); -	err |= __put_user(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); -	err |= __put_user(sas_ss_flags(regs->spu), -			  &frame->uc.uc_stack.ss_flags); -	err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); +	err |= __save_altstack(&frame->uc.uc_stack, regs->spu);  	err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0]);  	err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));  	if (err) diff --git a/arch/m32r/kernel/time.c b/arch/m32r/kernel/time.c index 84dd04048db..1a15f81ea1b 100644 --- a/arch/m32r/kernel/time.c +++ b/arch/m32r/kernel/time.c @@ -57,7 +57,7 @@ extern void smp_local_timer_interrupt(void);  static unsigned long latch; -u32 arch_gettimeoffset(void) +static u32 m32r_gettimeoffset(void)  {  	unsigned long  elapsed_time = 0;  /* [us] */ @@ -165,6 +165,8 @@ void read_persistent_clock(struct timespec *ts)  void __init time_init(void)  { +	arch_gettimeoffset = m32r_gettimeoffset; +  #if defined(CONFIG_CHIP_M32102) || defined(CONFIG_CHIP_XNUX2) \  	|| defined(CONFIG_CHIP_VDEC2) || defined(CONFIG_CHIP_M32700) \  	|| defined(CONFIG_CHIP_OPSP) || defined(CONFIG_CHIP_M32104) | 
