diff options
Diffstat (limited to 'arch/m32r/kernel')
| -rw-r--r-- | arch/m32r/kernel/process.c | 67 | ||||
| -rw-r--r-- | arch/m32r/kernel/signal.c | 16 | ||||
| -rw-r--r-- | arch/m32r/kernel/smpboot.c | 2 | ||||
| -rw-r--r-- | arch/m32r/kernel/time.c | 4 | ||||
| -rw-r--r-- | arch/m32r/kernel/traps.c | 15 | 
5 files changed, 10 insertions, 94 deletions
diff --git a/arch/m32r/kernel/process.c b/arch/m32r/kernel/process.c index 765d0f57c78..e69221d581d 100644 --- a/arch/m32r/kernel/process.c +++ b/arch/m32r/kernel/process.c @@ -44,59 +44,9 @@ 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 - * somebody to say that they'd like to reschedule) - */ -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(); -		} -		rcu_idle_exit(); -		schedule_preempt_disabled(); -	} -} -  void machine_restart(char *__unused)  {  #if defined(CONFIG_PLAT_MAPPI3) @@ -120,24 +70,11 @@ 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"); +	show_regs_print_info(KERN_DEFAULT); +  	printk("BPC[%08lx]:PSW[%08lx]:LR [%08lx]:FP [%08lx]\n", \  	  regs->bpc, regs->psw, regs->lr, regs->fp);  	printk("BBPC[%08lx]:BBPSW[%08lx]:SPU[%08lx]:SPI[%08lx]\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/smpboot.c b/arch/m32r/kernel/smpboot.c index 13168a769f8..0ac558adc60 100644 --- a/arch/m32r/kernel/smpboot.c +++ b/arch/m32r/kernel/smpboot.c @@ -432,7 +432,7 @@ int __init start_secondary(void *unused)  	 */  	local_flush_tlb_all(); -	cpu_idle(); +	cpu_startup_entry(CPUHP_ONLINE);  	return 0;  } 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) diff --git a/arch/m32r/kernel/traps.c b/arch/m32r/kernel/traps.c index 3bcb207e5b6..a7a424f852e 100644 --- a/arch/m32r/kernel/traps.c +++ b/arch/m32r/kernel/traps.c @@ -132,10 +132,8 @@ static void show_trace(struct task_struct *task, unsigned long *stack)  	printk("Call Trace: ");  	while (!kstack_end(stack)) {  		addr = *stack++; -		if (__kernel_text_address(addr)) { -			printk("[<%08lx>] ", addr); -			print_symbol("%s\n", addr); -		} +		if (__kernel_text_address(addr)) +			printk("[<%08lx>] %pSR\n", addr, (void *)addr);  	}  	printk("\n");  } @@ -169,15 +167,6 @@ void show_stack(struct task_struct *task, unsigned long *sp)  	show_trace(task, sp);  } -void dump_stack(void) -{ -	unsigned long stack; - -	show_trace(current, &stack); -} - -EXPORT_SYMBOL(dump_stack); -  static void show_registers(struct pt_regs *regs)  {  	int i = 0;  |