smp.c (c58310bf4933986513020fa90b4190c7492995ae) smp.c (39b8d5254246ac56342b72f812255c8f7a74dca9)
1/*
2 * This program is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU General Public License
4 * as published by the Free Software Foundation; either version 2
5 * of the License, or (at your option) any later version.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of

--- 21 unchanged lines hidden (view full) ---

30#include <linux/sched.h>
31#include <linux/cpumask.h>
32#include <linux/cpu.h>
33#include <linux/err.h>
34
35#include <asm/atomic.h>
36#include <asm/cpu.h>
37#include <asm/processor.h>
1/*
2 * This program is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU General Public License
4 * as published by the Free Software Foundation; either version 2
5 * of the License, or (at your option) any later version.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of

--- 21 unchanged lines hidden (view full) ---

30#include <linux/sched.h>
31#include <linux/cpumask.h>
32#include <linux/cpu.h>
33#include <linux/err.h>
34
35#include <asm/atomic.h>
36#include <asm/cpu.h>
37#include <asm/processor.h>
38#include <asm/r4k-timer.h>
38#include <asm/system.h>
39#include <asm/mmu_context.h>
40#include <asm/time.h>
41
42#ifdef CONFIG_MIPS_MT_SMTC
43#include <asm/mipsmtregs.h>
44#endif /* CONFIG_MIPS_MT_SMTC */
45

--- 74 unchanged lines hidden (view full) ---

120 cpu = smp_processor_id();
121 cpu_data[cpu].udelay_val = loops_per_jiffy;
122
123 mp_ops->smp_finish();
124 set_cpu_sibling_map(cpu);
125
126 cpu_set(cpu, cpu_callin_map);
127
39#include <asm/system.h>
40#include <asm/mmu_context.h>
41#include <asm/time.h>
42
43#ifdef CONFIG_MIPS_MT_SMTC
44#include <asm/mipsmtregs.h>
45#endif /* CONFIG_MIPS_MT_SMTC */
46

--- 74 unchanged lines hidden (view full) ---

121 cpu = smp_processor_id();
122 cpu_data[cpu].udelay_val = loops_per_jiffy;
123
124 mp_ops->smp_finish();
125 set_cpu_sibling_map(cpu);
126
127 cpu_set(cpu, cpu_callin_map);
128
129 synchronise_count_slave();
130
128 cpu_idle();
129}
130
131DEFINE_SPINLOCK(smp_call_lock);
132
133struct call_data_struct *call_data;
134
135/*

--- 146 unchanged lines hidden (view full) ---

282void smp_send_stop(void)
283{
284 smp_call_function(stop_this_cpu, NULL, 1, 0);
285}
286
287void __init smp_cpus_done(unsigned int max_cpus)
288{
289 mp_ops->cpus_done();
131 cpu_idle();
132}
133
134DEFINE_SPINLOCK(smp_call_lock);
135
136struct call_data_struct *call_data;
137
138/*

--- 146 unchanged lines hidden (view full) ---

285void smp_send_stop(void)
286{
287 smp_call_function(stop_this_cpu, NULL, 1, 0);
288}
289
290void __init smp_cpus_done(unsigned int max_cpus)
291{
292 mp_ops->cpus_done();
293 synchronise_count_master();
290}
291
292/* called from main before smp_init() */
293void __init smp_prepare_cpus(unsigned int max_cpus)
294{
295 init_new_context(current, &init_mm);
296 current_thread_info()->cpu = 0;
297 mp_ops->prepare_cpus(max_cpus);

--- 231 unchanged lines hidden ---
294}
295
296/* called from main before smp_init() */
297void __init smp_prepare_cpus(unsigned int max_cpus)
298{
299 init_new_context(current, &init_mm);
300 current_thread_info()->cpu = 0;
301 mp_ops->prepare_cpus(max_cpus);

--- 231 unchanged lines hidden ---