rpms/kernel/devel linux-2.6-xen-execshield-lazy-exec-limit.patch, NONE, 1.1 kernel-2.6.spec, 1.2461, 1.2462

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Thu Jul 27 15:08:49 UTC 2006


Author: quintela

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv30935

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-xen-execshield-lazy-exec-limit.patch 
Log Message:
fix xen i386 dom0 boot (#200382) (sct fixed it)

linux-2.6-xen-execshield-lazy-exec-limit.patch:
 traps-xen.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletion(-)

--- NEW FILE linux-2.6-xen-execshield-lazy-exec-limit.patch ---
diff --git a/arch/i386/kernel/traps-xen.c b/arch/i386/kernel/traps-xen.c
index 462b206..9449104 100644
--- a/arch/i386/kernel/traps-xen.c
+++ b/arch/i386/kernel/traps-xen.c
@@ -594,6 +594,8 @@ check_lazy_exec_limit(int cpu, struct pt
 	desc2 = get_cpu_gdt_table(cpu) + GDT_ENTRY_DEFAULT_USER_CS;
 
 	if (desc1->a != desc2->a || desc1->b != desc2->b) {
+		int result;
+
 		/*
 		 * The CS was not in sync - reload it and retry the
 		 * instruction. If the instruction still faults then
@@ -603,8 +605,13 @@ check_lazy_exec_limit(int cpu, struct pt
 			printk("#GPF fixup (%ld[seg:%lx]) at %08lx, CPU#%d.\n", error_code, error_code/8, regs->eip, smp_processor_id());
 			printk(" exec_limit: %08lx, user_cs: %08lx/%08lx, CPU_cs: %08lx/%08lx.\n", current->mm->context.exec_limit, desc1->a, desc1->b, desc2->a, desc2->b);
 		}
+		/* Only return progress if we widened the segment; on
+		 * Xen, sometimes the segment is set _too_ wide and we
+		 * try to narrow it here, but that can never make
+		 * progress towards resolving the GPF! */
+		result = (desc1->a < desc2->a || desc1->b > desc2->b);
 		load_user_cs_desc(cpu, current->mm);
-		return 1;
+		return result;
 	}
 
 	return 0;


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.2461
retrieving revision 1.2462
diff -u -r1.2461 -r1.2462
--- kernel-2.6.spec	27 Jul 2006 13:05:33 -0000	1.2461
+++ kernel-2.6.spec	27 Jul 2006 15:08:47 -0000	1.2462
@@ -324,6 +324,7 @@
 Patch953: linux-2.6-xen-x86_64-add-ppoll-pselect.patch
 Patch954: linux-2.6-xen-execshield.patch
 Patch955: linux-2.6-xen-tux.patch
+Patch956: linux-2.6-xen-execshield-lazy-exec-limit.patch
 
 
 Patch990: linux-2.6-xen-compile-fixes.patch
@@ -835,7 +836,7 @@
 # Xen exec-shield bits
 %patch954 -p1
 %patch955 -p1
-
+%patch956 -p1
 
 #%patch990 -p1
 
@@ -1662,6 +1663,7 @@
 * Thu Jul 27 2006 Juan Quintela <quintela at redhat.com>
 - review all xen related patches.
 - x86_64 dom0, x86_64 domU and i386 domU should work.
+- fix xen i386 dom0 boot (#200382).
 
 * Thu Jul 27 2006 Rik van Riel <riel at redhat.com>
 - reduce hypervisor stack use with -O2, this really fixes bug (#198932)




More information about the fedora-cvs-commits mailing list