diff options
Diffstat (limited to 'arch/m32r/kernel')
-rw-r--r-- | arch/m32r/kernel/irq.c | 45 | ||||
-rw-r--r-- | arch/m32r/kernel/time.c | 5 | ||||
-rw-r--r-- | arch/m32r/kernel/vmlinux.lds.S | 2 |
3 files changed, 4 insertions, 48 deletions
diff --git a/arch/m32r/kernel/irq.c b/arch/m32r/kernel/irq.c index 7db26f1f082d..c7272b894283 100644 --- a/arch/m32r/kernel/irq.c +++ b/arch/m32r/kernel/irq.c | |||
@@ -18,53 +18,10 @@ | |||
18 | 18 | ||
19 | #include <linux/kernel_stat.h> | 19 | #include <linux/kernel_stat.h> |
20 | #include <linux/interrupt.h> | 20 | #include <linux/interrupt.h> |
21 | #include <linux/seq_file.h> | ||
22 | #include <linux/module.h> | 21 | #include <linux/module.h> |
23 | #include <asm/uaccess.h> | 22 | #include <asm/uaccess.h> |
24 | 23 | ||
25 | /* | 24 | /* |
26 | * Generic, controller-independent functions: | ||
27 | */ | ||
28 | |||
29 | int show_interrupts(struct seq_file *p, void *v) | ||
30 | { | ||
31 | int i = *(loff_t *) v, j; | ||
32 | struct irqaction * action; | ||
33 | unsigned long flags; | ||
34 | |||
35 | if (i == 0) { | ||
36 | seq_printf(p, " "); | ||
37 | for_each_online_cpu(j) | ||
38 | seq_printf(p, "CPU%d ",j); | ||
39 | seq_putc(p, '\n'); | ||
40 | } | ||
41 | |||
42 | if (i < NR_IRQS) { | ||
43 | raw_spin_lock_irqsave(&irq_desc[i].lock, flags); | ||
44 | action = irq_desc[i].action; | ||
45 | if (!action) | ||
46 | goto skip; | ||
47 | seq_printf(p, "%3d: ",i); | ||
48 | #ifndef CONFIG_SMP | ||
49 | seq_printf(p, "%10u ", kstat_irqs(i)); | ||
50 | #else | ||
51 | for_each_online_cpu(j) | ||
52 | seq_printf(p, "%10u ", kstat_irqs_cpu(i, j)); | ||
53 | #endif | ||
54 | seq_printf(p, " %14s", irq_desc[i].chip->name); | ||
55 | seq_printf(p, " %s", action->name); | ||
56 | |||
57 | for (action=action->next; action; action = action->next) | ||
58 | seq_printf(p, ", %s", action->name); | ||
59 | |||
60 | seq_putc(p, '\n'); | ||
61 | skip: | ||
62 | raw_spin_unlock_irqrestore(&irq_desc[i].lock, flags); | ||
63 | } | ||
64 | return 0; | ||
65 | } | ||
66 | |||
67 | /* | ||
68 | * do_IRQ handles all normal device IRQs (the special | 25 | * do_IRQ handles all normal device IRQs (the special |
69 | * SMP cross-CPU interrupts have their own specific | 26 | * SMP cross-CPU interrupts have their own specific |
70 | * handlers). | 27 | * handlers). |
@@ -78,7 +35,7 @@ asmlinkage unsigned int do_IRQ(int irq, struct pt_regs *regs) | |||
78 | #ifdef CONFIG_DEBUG_STACKOVERFLOW | 35 | #ifdef CONFIG_DEBUG_STACKOVERFLOW |
79 | /* FIXME M32R */ | 36 | /* FIXME M32R */ |
80 | #endif | 37 | #endif |
81 | __do_IRQ(irq); | 38 | generic_handle_irq(irq); |
82 | irq_exit(); | 39 | irq_exit(); |
83 | set_irq_regs(old_regs); | 40 | set_irq_regs(old_regs); |
84 | 41 | ||
diff --git a/arch/m32r/kernel/time.c b/arch/m32r/kernel/time.c index bda86820bffd..84dd04048db9 100644 --- a/arch/m32r/kernel/time.c +++ b/arch/m32r/kernel/time.c | |||
@@ -107,15 +107,14 @@ u32 arch_gettimeoffset(void) | |||
107 | 107 | ||
108 | /* | 108 | /* |
109 | * timer_interrupt() needs to keep up the real-time clock, | 109 | * timer_interrupt() needs to keep up the real-time clock, |
110 | * as well as call the "do_timer()" routine every clocktick | 110 | * as well as call the "xtime_update()" routine every clocktick |
111 | */ | 111 | */ |
112 | static irqreturn_t timer_interrupt(int irq, void *dev_id) | 112 | static irqreturn_t timer_interrupt(int irq, void *dev_id) |
113 | { | 113 | { |
114 | #ifndef CONFIG_SMP | 114 | #ifndef CONFIG_SMP |
115 | profile_tick(CPU_PROFILING); | 115 | profile_tick(CPU_PROFILING); |
116 | #endif | 116 | #endif |
117 | /* XXX FIXME. Uh, the xtime_lock should be held here, no? */ | 117 | xtime_update(1); |
118 | do_timer(1); | ||
119 | 118 | ||
120 | #ifndef CONFIG_SMP | 119 | #ifndef CONFIG_SMP |
121 | update_process_times(user_mode(get_irq_regs())); | 120 | update_process_times(user_mode(get_irq_regs())); |
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S index 7da94eaa082b..c194d64cdbb9 100644 --- a/arch/m32r/kernel/vmlinux.lds.S +++ b/arch/m32r/kernel/vmlinux.lds.S | |||
@@ -53,7 +53,7 @@ SECTIONS | |||
53 | __init_begin = .; | 53 | __init_begin = .; |
54 | INIT_TEXT_SECTION(PAGE_SIZE) | 54 | INIT_TEXT_SECTION(PAGE_SIZE) |
55 | INIT_DATA_SECTION(16) | 55 | INIT_DATA_SECTION(16) |
56 | PERCPU(PAGE_SIZE) | 56 | PERCPU(32, PAGE_SIZE) |
57 | . = ALIGN(PAGE_SIZE); | 57 | . = ALIGN(PAGE_SIZE); |
58 | __init_end = .; | 58 | __init_end = .; |
59 | /* freed after init ends here */ | 59 | /* freed after init ends here */ |