aboutsummaryrefslogtreecommitdiffstats
path: root/linux-2.6-xen-sparse
diff options
context:
space:
mode:
authorawilliam@xenbuild2.aw <awilliam@xenbuild2.aw>2006-12-14 08:57:36 -0700
committerawilliam@xenbuild2.aw <awilliam@xenbuild2.aw>2006-12-14 08:57:36 -0700
commit5a170ea5d67f9557977d7181553a3241db1ddb07 (patch)
tree9e8a3080392b4d51861d509e445d816617270c07 /linux-2.6-xen-sparse
parent318b012682a200abae4338dfdd7421f02aae254d (diff)
parentb4439be6e54e729faec20b10abe7e3c009af7ec4 (diff)
downloadxen-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.c10
-rw-r--r--linux-2.6-xen-sparse/drivers/xen/core/smpboot.c25
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);