diff options
author | awilliam@xenbuild2.aw <awilliam@xenbuild2.aw> | 2006-12-14 08:57:36 -0700 |
---|---|---|
committer | awilliam@xenbuild2.aw <awilliam@xenbuild2.aw> | 2006-12-14 08:57:36 -0700 |
commit | 5a170ea5d67f9557977d7181553a3241db1ddb07 (patch) | |
tree | 9e8a3080392b4d51861d509e445d816617270c07 /linux-2.6-xen-sparse | |
parent | 318b012682a200abae4338dfdd7421f02aae254d (diff) | |
parent | b4439be6e54e729faec20b10abe7e3c009af7ec4 (diff) | |
download | xen-5a170ea5d67f9557977d7181553a3241db1ddb07.tar.gz xen-5a170ea5d67f9557977d7181553a3241db1ddb07.tar.bz2 xen-5a170ea5d67f9557977d7181553a3241db1ddb07.zip |
merge with xen-unstable.hg
Diffstat (limited to 'linux-2.6-xen-sparse')
-rw-r--r-- | linux-2.6-xen-sparse/arch/i386/kernel/fixup.c | 10 | ||||
-rw-r--r-- | linux-2.6-xen-sparse/drivers/xen/core/smpboot.c | 25 |
2 files changed, 17 insertions, 18 deletions
diff --git a/linux-2.6-xen-sparse/arch/i386/kernel/fixup.c b/linux-2.6-xen-sparse/arch/i386/kernel/fixup.c index 2bf16fb732..f7e6feedee 100644 --- a/linux-2.6-xen-sparse/arch/i386/kernel/fixup.c +++ b/linux-2.6-xen-sparse/arch/i386/kernel/fixup.c @@ -43,17 +43,17 @@ fastcall void do_fixup_4gb_segment(struct pt_regs *regs, long error_code) char info[100]; int i; - if (test_and_set_bit(0, &printed)) + /* Ignore statically-linked init. */ + if (current->tgid == 1) return; - - if (current->tgid == 1) /* Ignore statically linked init */ - return; HYPERVISOR_vm_assist( VMASST_CMD_disable, VMASST_TYPE_4gb_segments_notify); - sprintf(info, "%s (pid=%d)", current->comm, current->tgid); + if (test_and_set_bit(0, &printed)) + return; + sprintf(info, "%s (pid=%d)", current->comm, current->tgid); DP(""); DP("***************************************************************"); diff --git a/linux-2.6-xen-sparse/drivers/xen/core/smpboot.c b/linux-2.6-xen-sparse/drivers/xen/core/smpboot.c index 36d5a884d4..5f06e1fdc9 100644 --- a/linux-2.6-xen-sparse/drivers/xen/core/smpboot.c +++ b/linux-2.6-xen-sparse/drivers/xen/core/smpboot.c @@ -110,6 +110,18 @@ set_cpu_sibling_map(int cpu) cpu_data[cpu].booted_cores = 1; } +static void +remove_siblinginfo(int cpu) +{ + phys_proc_id[cpu] = BAD_APICID; + cpu_core_id[cpu] = BAD_APICID; + + cpus_clear(cpu_sibling_map[cpu]); + cpus_clear(cpu_core_map[cpu]); + + cpu_data[cpu].booted_cores = 0; +} + static int xen_smp_intr_init(unsigned int cpu) { int rc; @@ -358,18 +370,6 @@ static int __init initialize_cpu_present_map(void) } core_initcall(initialize_cpu_present_map); -static void -remove_siblinginfo(int cpu) -{ - phys_proc_id[cpu] = BAD_APICID; - cpu_core_id[cpu] = BAD_APICID; - - cpus_clear(cpu_sibling_map[cpu]); - cpus_clear(cpu_core_map[cpu]); - - cpu_data[cpu].booted_cores = 0; -} - int __cpu_disable(void) { cpumask_t map = cpu_online_map; @@ -433,7 +433,6 @@ int __devinit __cpu_up(unsigned int cpu) set_cpu_sibling_map(cpu); wmb(); - rc = xen_smp_intr_init(cpu); if (rc) { remove_siblinginfo(cpu); |