summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Young <m.a.young@durham.ac.uk>2010-12-01 20:25:42 +0000
committerMichael Young <m.a.young@durham.ac.uk>2010-12-01 20:25:42 +0000
commit80cf9562d36e907abebdd7839b79529fee08ad41 (patch)
treefcb3fd6cd585199077abc03a0cbd1aeb68e3b590
parent31a9581dfd89175d717bffdccf950ac3432629db (diff)
downloaddom0-kernel-80cf9562d36e907abebdd7839b79529fee08ad41.tar.gz
dom0-kernel-80cf9562d36e907abebdd7839b79529fee08ad41.tar.xz
dom0-kernel-80cf9562d36e907abebdd7839b79529fee08ad41.zip
update pvops to get a crash-on-shutdown fix
-rw-r--r--kernel.spec5
-rw-r--r--xen.pvops.patch31
2 files changed, 25 insertions, 11 deletions
diff --git a/kernel.spec b/kernel.spec
index c41f241..2475e25 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -48,7 +48,7 @@ Summary: The Linux kernel
# reset this by hand to 1 (or to 0 and then use rpmdev-bumpspec).
# scripts/rebase.sh should be made to do that for you, actually.
#
-%global baserelease 174.1
+%global baserelease 174.2
%global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching
@@ -2227,6 +2227,9 @@ fi
%kernel_variant_files -k vmlinux %{with_kdump} kdump
%changelog
+* Wed Dec 01 2010 Michael Young <m.a.young@durham.ac.uk>
+- update pvops to get a crash-on-shutdown fix
+
* Mon Nov 29 2010 Michael Young <m.a.young@durham.ac.uk>
- Another pvops update before F12 reaches EOL
diff --git a/xen.pvops.patch b/xen.pvops.patch
index dac942e..c692097 100644
--- a/xen.pvops.patch
+++ b/xen.pvops.patch
@@ -3908,7 +3908,7 @@ index 0000000..21a3089
+#endif
+}
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index 7f8d2b2..8ab3b7b 100644
+index 7f8d2b2..fbb35cd 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -11,6 +11,7 @@
@@ -4215,7 +4215,18 @@ index 7f8d2b2..8ab3b7b 100644
.io_delay = xen_io_delay,
/* Xen takes care of %gs when switching to usermode for us */
-@@ -1020,15 +1053,40 @@ static void xen_machine_halt(void)
+@@ -997,10 +1030,6 @@ static void xen_reboot(int reason)
+ {
+ struct sched_shutdown r = { .reason = reason };
+
+-#ifdef CONFIG_SMP
+- stop_other_cpus();
+-#endif
+-
+ if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r))
+ BUG();
+ }
+@@ -1020,15 +1049,40 @@ static void xen_machine_halt(void)
xen_reboot(SHUTDOWN_poweroff);
}
@@ -4257,7 +4268,7 @@ index 7f8d2b2..8ab3b7b 100644
.shutdown = xen_machine_halt,
.crash_shutdown = xen_crash_shutdown,
.emergency_restart = xen_emergency_restart,
-@@ -1061,10 +1119,11 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1061,10 +1115,11 @@ asmlinkage void __init xen_start_kernel(void)
xen_domain_type = XEN_PV_DOMAIN;
@@ -4270,7 +4281,7 @@ index 7f8d2b2..8ab3b7b 100644
pv_cpu_ops = xen_cpu_ops;
pv_apic_ops = xen_apic_ops;
-@@ -1072,13 +1131,7 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1072,13 +1127,7 @@ asmlinkage void __init xen_start_kernel(void)
x86_init.oem.arch_setup = xen_arch_setup;
x86_init.oem.banner = xen_banner;
@@ -4285,7 +4296,7 @@ index 7f8d2b2..8ab3b7b 100644
/*
* Set up some pagetable state before starting to set any ptes.
-@@ -1116,6 +1169,10 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1116,6 +1165,10 @@ asmlinkage void __init xen_start_kernel(void)
*/
xen_setup_stackprotector();
@@ -4296,7 +4307,7 @@ index 7f8d2b2..8ab3b7b 100644
xen_init_irq_ops();
xen_init_cpuid_mask();
-@@ -1144,6 +1201,8 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1144,6 +1197,8 @@ asmlinkage void __init xen_start_kernel(void)
pgd = (pgd_t *)xen_start_info->pt_base;
@@ -4305,7 +4316,7 @@ index 7f8d2b2..8ab3b7b 100644
/* Don't do the full vcpu_info placement stuff until we have a
possible map and a non-dummy shared_info. */
per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];
-@@ -1153,6 +1212,10 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1153,6 +1208,10 @@ asmlinkage void __init xen_start_kernel(void)
xen_raw_console_write("mapping kernel into physical memory\n");
pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
@@ -4316,7 +4327,7 @@ index 7f8d2b2..8ab3b7b 100644
init_mm.pgd = pgd;
-@@ -1162,6 +1225,14 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1162,6 +1221,14 @@ asmlinkage void __init xen_start_kernel(void)
if (xen_feature(XENFEAT_supervisor_mode_kernel))
pv_info.kernel_rpl = 0;
@@ -4331,7 +4342,7 @@ index 7f8d2b2..8ab3b7b 100644
/* set the limit of our address space */
xen_reserve_top();
-@@ -1184,6 +1255,16 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1184,6 +1251,16 @@ asmlinkage void __init xen_start_kernel(void)
add_preferred_console("xenboot", 0, NULL);
add_preferred_console("tty", 0, NULL);
add_preferred_console("hvc", 0, NULL);
@@ -4348,7 +4359,7 @@ index 7f8d2b2..8ab3b7b 100644
}
xen_raw_console_write("about to get started...\n");
-@@ -1197,3 +1278,126 @@ asmlinkage void __init xen_start_kernel(void)
+@@ -1197,3 +1274,126 @@ asmlinkage void __init xen_start_kernel(void)
x86_64_start_reservations((char *)__pa_symbol(&boot_params));
#endif
}