Commit 30088b54 authored by Jeff Dike's avatar Jeff Dike

Some SMP fixes.

parent 90f65268
...@@ -75,7 +75,6 @@ EXPORT_SYMBOL_NOVERS(__write_lock_failed); ...@@ -75,7 +75,6 @@ EXPORT_SYMBOL_NOVERS(__write_lock_failed);
extern void FASTCALL( __read_lock_failed(rwlock_t *rw)); extern void FASTCALL( __read_lock_failed(rwlock_t *rw));
EXPORT_SYMBOL_NOVERS(__read_lock_failed); EXPORT_SYMBOL_NOVERS(__read_lock_failed);
EXPORT_SYMBOL(smp_num_cpus);
#endif #endif
#ifdef CONFIG_HIGHMEM #ifdef CONFIG_HIGHMEM
......
...@@ -256,27 +256,27 @@ int can_do_skas(void) ...@@ -256,27 +256,27 @@ int can_do_skas(void)
void *stack; void *stack;
int pid, n, ret = 1; int pid, n, ret = 1;
printk("Checking for the skas3 patch in the host..."); printf("Checking for the skas3 patch in the host...");
pid = start_ptraced_child(&stack); pid = start_ptraced_child(&stack);
n = ptrace(PTRACE_FAULTINFO, pid, 0, &fi); n = ptrace(PTRACE_FAULTINFO, pid, 0, &fi);
if(n < 0){ if(n < 0){
if(errno == EIO) if(errno == EIO)
printk("not found\n"); printf("not found\n");
else printk("No (unexpected errno - %d)\n", errno); else printf("No (unexpected errno - %d)\n", errno);
ret = 0; ret = 0;
} }
else printk("found\n"); else printf("found\n");
init_registers(pid); init_registers(pid);
stop_ptraced_child(pid, stack, 1); stop_ptraced_child(pid, stack, 1);
printk("Checking for /proc/mm..."); printf("Checking for /proc/mm...");
if(access("/proc/mm", W_OK)){ if(access("/proc/mm", W_OK)){
printk("not found\n"); printf("not found\n");
ret = 0; ret = 0;
} }
else printk("found\n"); else printf("found\n");
return(ret); return(ret);
#else #else
......
...@@ -13,6 +13,7 @@ unsigned long cpu_online_map = 1; ...@@ -13,6 +13,7 @@ unsigned long cpu_online_map = 1;
#include "linux/sched.h" #include "linux/sched.h"
#include "linux/threads.h" #include "linux/threads.h"
#include "linux/interrupt.h" #include "linux/interrupt.h"
#include "linux/err.h"
#include "asm/smp.h" #include "asm/smp.h"
#include "asm/processor.h" #include "asm/processor.h"
#include "asm/spinlock.h" #include "asm/spinlock.h"
...@@ -140,7 +141,7 @@ static struct task_struct *idle_thread(int cpu) ...@@ -140,7 +141,7 @@ static struct task_struct *idle_thread(int cpu)
current->thread.request.u.thread.proc = idle_proc; current->thread.request.u.thread.proc = idle_proc;
current->thread.request.u.thread.arg = (void *) cpu; current->thread.request.u.thread.arg = (void *) cpu;
new_task = do_fork(CLONE_VM | CLONE_IDLETASK, 0, NULL, 0, NULL); new_task = do_fork(CLONE_VM | CLONE_IDLETASK, 0, NULL, 0, NULL, NULL);
if(IS_ERR(new_task)) panic("do_fork failed in idle_thread"); if(IS_ERR(new_task)) panic("do_fork failed in idle_thread");
cpu_tasks[cpu] = ((struct cpu_task) cpu_tasks[cpu] = ((struct cpu_task)
...@@ -186,7 +187,7 @@ void smp_prepare_cpus(unsigned int maxcpus) ...@@ -186,7 +187,7 @@ void smp_prepare_cpus(unsigned int maxcpus)
} }
} }
void __devinit smp_prepare_boot_cpu(void) void smp_prepare_boot_cpu(void)
{ {
set_bit(smp_processor_id(), &cpu_online_map); set_bit(smp_processor_id(), &cpu_online_map);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment