diff options
Diffstat (limited to 'arch/hexagon')
-rw-r--r-- | arch/hexagon/kernel/process.c | 23 | ||||
-rw-r--r-- | arch/hexagon/kernel/smp.c | 2 | ||||
-rw-r--r-- | arch/hexagon/kernel/traps.c | 8 | ||||
-rw-r--r-- | arch/hexagon/kernel/vm_events.c | 2 |
4 files changed, 6 insertions, 29 deletions
diff --git a/arch/hexagon/kernel/process.c b/arch/hexagon/kernel/process.c index 7fcc636b6238..0a0dd5c05b46 100644 --- a/arch/hexagon/kernel/process.c +++ b/arch/hexagon/kernel/process.c | |||
@@ -52,28 +52,11 @@ void start_thread(struct pt_regs *regs, unsigned long pc, unsigned long sp) | |||
52 | * If hardware or VM offer wait termination even though interrupts | 52 | * If hardware or VM offer wait termination even though interrupts |
53 | * are disabled. | 53 | * are disabled. |
54 | */ | 54 | */ |
55 | static void default_idle(void) | 55 | void arch_cpu_idle(void) |
56 | { | 56 | { |
57 | __vmwait(); | 57 | __vmwait(); |
58 | } | 58 | /* interrupts wake us up, but irqs are still disabled */ |
59 | 59 | local_irq_enable(); | |
60 | void (*idle_sleep)(void) = default_idle; | ||
61 | |||
62 | void cpu_idle(void) | ||
63 | { | ||
64 | while (1) { | ||
65 | tick_nohz_idle_enter(); | ||
66 | local_irq_disable(); | ||
67 | while (!need_resched()) { | ||
68 | idle_sleep(); | ||
69 | /* interrupts wake us up, but aren't serviced */ | ||
70 | local_irq_enable(); /* service interrupt */ | ||
71 | local_irq_disable(); | ||
72 | } | ||
73 | local_irq_enable(); | ||
74 | tick_nohz_idle_exit(); | ||
75 | schedule(); | ||
76 | } | ||
77 | } | 60 | } |
78 | 61 | ||
79 | /* | 62 | /* |
diff --git a/arch/hexagon/kernel/smp.c b/arch/hexagon/kernel/smp.c index 8e095dffd070..0e364ca43198 100644 --- a/arch/hexagon/kernel/smp.c +++ b/arch/hexagon/kernel/smp.c | |||
@@ -184,7 +184,7 @@ void __cpuinit start_secondary(void) | |||
184 | 184 | ||
185 | local_irq_enable(); | 185 | local_irq_enable(); |
186 | 186 | ||
187 | cpu_idle(); | 187 | cpu_startup_entry(CPUHP_ONLINE); |
188 | } | 188 | } |
189 | 189 | ||
190 | 190 | ||
diff --git a/arch/hexagon/kernel/traps.c b/arch/hexagon/kernel/traps.c index aaf53f883710..7858663352b9 100644 --- a/arch/hexagon/kernel/traps.c +++ b/arch/hexagon/kernel/traps.c | |||
@@ -195,14 +195,6 @@ void show_stack(struct task_struct *task, unsigned long *fp) | |||
195 | do_show_stack(task, fp, 0); | 195 | do_show_stack(task, fp, 0); |
196 | } | 196 | } |
197 | 197 | ||
198 | void dump_stack(void) | ||
199 | { | ||
200 | unsigned long *fp; | ||
201 | asm("%0 = r30" : "=r" (fp)); | ||
202 | show_stack(current, fp); | ||
203 | } | ||
204 | EXPORT_SYMBOL(dump_stack); | ||
205 | |||
206 | int die(const char *str, struct pt_regs *regs, long err) | 198 | int die(const char *str, struct pt_regs *regs, long err) |
207 | { | 199 | { |
208 | static struct { | 200 | static struct { |
diff --git a/arch/hexagon/kernel/vm_events.c b/arch/hexagon/kernel/vm_events.c index 3e4453091889..741aaa917cda 100644 --- a/arch/hexagon/kernel/vm_events.c +++ b/arch/hexagon/kernel/vm_events.c | |||
@@ -33,6 +33,8 @@ | |||
33 | */ | 33 | */ |
34 | void show_regs(struct pt_regs *regs) | 34 | void show_regs(struct pt_regs *regs) |
35 | { | 35 | { |
36 | show_regs_print_info(KERN_EMERG); | ||
37 | |||
36 | printk(KERN_EMERG "restart_r0: \t0x%08lx syscall_nr: %ld\n", | 38 | printk(KERN_EMERG "restart_r0: \t0x%08lx syscall_nr: %ld\n", |
37 | regs->restart_r0, regs->syscall_nr); | 39 | regs->restart_r0, regs->syscall_nr); |
38 | printk(KERN_EMERG "preds: \t\t0x%08lx\n", regs->preds); | 40 | printk(KERN_EMERG "preds: \t\t0x%08lx\n", regs->preds); |