git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.3
[linux-2.6.git]
/
arch
/
sparc
/
kernel
/
sun4d_smp.c
diff --git
a/arch/sparc/kernel/sun4d_smp.c
b/arch/sparc/kernel/sun4d_smp.c
index
9f659c2
..
1de4c8a
100644
(file)
--- a/
arch/sparc/kernel/sun4d_smp.c
+++ b/
arch/sparc/kernel/sun4d_smp.c
@@
-19,6
+19,7
@@
#include <linux/spinlock.h>
#include <linux/mm.h>
#include <linux/swap.h>
#include <linux/spinlock.h>
#include <linux/mm.h>
#include <linux/swap.h>
+#include <linux/profile.h>
#include <asm/ptrace.h>
#include <asm/atomic.h>
#include <asm/ptrace.h>
#include <asm/atomic.h>
@@
-29,7
+30,6
@@
#include <asm/pgalloc.h>
#include <asm/pgtable.h>
#include <asm/oplib.h>
#include <asm/pgalloc.h>
#include <asm/pgtable.h>
#include <asm/oplib.h>
-#include <asm/hardirq.h>
#include <asm/sbus.h>
#include <asm/sbi.h>
#include <asm/tlbflush.h>
#include <asm/sbus.h>
#include <asm/sbi.h>
#include <asm/tlbflush.h>
@@
-201,18
+201,9
@@
void __init smp4d_boot_cpus(void)
int no;
/* Cook up an idler for this guy. */
int no;
/* Cook up an idler for this guy. */
- kernel_thread(start_secondary, NULL, CLONE_IDLETASK);
-
+ p = fork_idle(i);
cpucount++;
cpucount++;
-
- p = prev_task(&init_task);
-
- init_idle(p, i);
-
current_set[i] = p->thread_info;
current_set[i] = p->thread_info;
-
- unhash_process(p);
-
for (no = 0; !cpu_find_by_instance(no, NULL, &mid)
&& mid != i; no++) ;
for (no = 0; !cpu_find_by_instance(no, NULL, &mid)
&& mid != i; no++) ;
@@
-418,8
+409,6
@@
void smp4d_message_pass(int target, int msg, unsigned long data, int wait)
panic("Bogon SMP message pass.");
}
panic("Bogon SMP message pass.");
}
-extern void sparc_do_profile(unsigned long pc, unsigned long o7);
-
void smp4d_percpu_timer_interrupt(struct pt_regs *regs)
{
int cpu = hard_smp4d_processor_id();
void smp4d_percpu_timer_interrupt(struct pt_regs *regs)
{
int cpu = hard_smp4d_processor_id();
@@
-437,8
+426,7
@@
void smp4d_percpu_timer_interrupt(struct pt_regs *regs)
show_leds(cpu);
}
show_leds(cpu);
}
- if(!user_mode(regs))
- sparc_do_profile(regs->pc, regs->u_regs[UREG_RETPC]);
+ profile_tick(CPU_PROFILING, regs);
if(!--prof_counter(cpu)) {
int user = user_mode(regs);
if(!--prof_counter(cpu)) {
int user = user_mode(regs);