Description of problem: scrashme -f on an i686 RHEL4 PV stops working after it executes the "vm86old" system call. Executing this call by hand (scrashme -c 113 -f) also shows the problem. Hitting Ctrl-C will not kill the test, and the guest becomes un-pingable. On the other hand, executing "xm shutdown <domid>" from the dom0 seems to cleanly shutdown the domU, so it is not entirely dead, just unresponsive. In rawhide/fc6, executing this system command in a domU causes the calling process to segmentation fault; RHEL4 domU's should probably do the same.
Created attachment 139086 [details] Fix i686 RHEL4 PV vm86old crash This patch fixes the crash when running vm86old (originally found by running scrashme). The problem was two-fold; basically a mis-merge of the code in arch/i386/kernel/entry-xen.S, plus missing stack switches in arch/i386/kernel/vm86.c. The mis-merge was caused because RHEL-4 doesn't have the "CONFIG_VM86" option, while 2.6.18 does; it basically means the code necessary to return from vm86 mode wasn't being properly compiled into entry-xen.S. The missing HYPERVISOR_stack_switch in vm86.c was making it so that we didn't use the kernel stack. I don't completely understand this last part, but it brings us in sync with 2.6.18, and seems to work. Without this patch, the RHEL-4 kernel goes into an endless loop (just consuming CPU time) when vm86old was called; with this patch, that no longer happens, and it SEGFAULTS when running scrashme (the same as the FC-6 xen kernel).
Created attachment 140003 [details] Respin of the vm86old patch, to use load_esp0 instead of stack_switch
QE ack for RHEL4.5.
committed in stream U5 build 42.22. A test kernel with this patch is available from http://people.redhat.com/~jbaron/rhel4/
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2007-0304.html