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
This commit was manufactured by cvs2svn to create tag
[linux-2.6.git]
/
arch
/
x86_64
/
kernel
/
smp-xen.c
diff --git
a/arch/x86_64/kernel/smp-xen.c
b/arch/x86_64/kernel/smp-xen.c
index
1b9fad1
..
e1de0ab
100644
(file)
--- a/
arch/x86_64/kernel/smp-xen.c
+++ b/
arch/x86_64/kernel/smp-xen.c
@@
-209,7
+209,7
@@
int __cpuinit init_smp_flush(void)
{
int i;
for_each_cpu_mask(i, cpu_possible_map) {
{
int i;
for_each_cpu_mask(i, cpu_possible_map) {
- spin_lock_init(&per_cpu(flush_state
.tlbstate_lock, i)
);
+ spin_lock_init(&per_cpu(flush_state
, i).tlbstate_lock
);
}
return 0;
}
}
return 0;
}
@@
-230,6
+230,7
@@
void flush_tlb_current_task(void)
flush_tlb_others(cpu_mask, mm, FLUSH_ALL);
preempt_enable();
}
flush_tlb_others(cpu_mask, mm, FLUSH_ALL);
preempt_enable();
}
+EXPORT_SYMBOL(flush_tlb_current_task);
void flush_tlb_mm (struct mm_struct * mm)
{
void flush_tlb_mm (struct mm_struct * mm)
{
@@
-250,6
+251,7
@@
void flush_tlb_mm (struct mm_struct * mm)
preempt_enable();
}
preempt_enable();
}
+EXPORT_SYMBOL(flush_tlb_mm);
void flush_tlb_page(struct vm_area_struct * vma, unsigned long va)
{
void flush_tlb_page(struct vm_area_struct * vma, unsigned long va)
{
@@
-272,6
+274,7
@@
void flush_tlb_page(struct vm_area_struct * vma, unsigned long va)
preempt_enable();
}
preempt_enable();
}
+EXPORT_SYMBOL(flush_tlb_page);
static void do_flush_tlb_all(void* info)
{
static void do_flush_tlb_all(void* info)
{
@@
-469,6
+472,7
@@
int smp_call_function (void (*func) (void *info), void *info, int nonatomic,
spin_unlock(&call_lock);
return 0;
}
spin_unlock(&call_lock);
return 0;
}
+EXPORT_SYMBOL(smp_call_function);
void smp_stop_cpu(void)
{
void smp_stop_cpu(void)
{
@@
-500,7
+504,7
@@
void smp_send_stop(void)
#endif
/* Don't deadlock on the call lock in panic */
if (!spin_trylock(&call_lock)) {
#endif
/* Don't deadlock on the call lock in panic */
if (!spin_trylock(&call_lock)) {
- /* ignore locking because we have paniced anyways */
+ /* ignore locking because we have panic
k
ed anyways */
nolock = 1;
}
__smp_call_function(smp_really_stop_cpu, NULL, 0, 0);
nolock = 1;
}
__smp_call_function(smp_really_stop_cpu, NULL, 0, 0);
@@
-572,13
+576,13
@@
int safe_smp_processor_id(void)
#ifdef CONFIG_XEN
return smp_processor_id();
#else
#ifdef CONFIG_XEN
return smp_processor_id();
#else
-
int
apicid, i;
+
unsigned
apicid, i;
if (disable_apic)
return 0;
apicid = hard_smp_processor_id();
if (disable_apic)
return 0;
apicid = hard_smp_processor_id();
- if (x86_cpu_to_apicid[apicid] == apicid)
+ if (
apicid < NR_CPUS &&
x86_cpu_to_apicid[apicid] == apicid)
return apicid;
for (i = 0; i < NR_CPUS; ++i) {
return apicid;
for (i = 0; i < NR_CPUS; ++i) {