xserver: Branch 'master'

Juliusz Chroboczek jch at kemper.freedesktop.org
Mon Nov 6 03:30:28 EET 2006


 hw/kdrive/vesa/vm86.c |   31 ++++++++++++++++---------------
 1 files changed, 16 insertions(+), 15 deletions(-)

New commits:
diff-tree aa0261a98e9d5b1349b33e2639bd83c556dd4000 (from 6b2c65fdd169037c6ede250d4a8fec3d29a080ae)
Author: Juliusz Chroboczek <jch at pps.jussieu.fr>
Date:   Mon Nov 6 02:29:49 2006 +0100

    Improve vm86 error handling in Xvesa.

diff --git a/hw/kdrive/vesa/vm86.c b/hw/kdrive/vesa/vm86.c
index c4aadbd..d09a36d 100644
--- a/hw/kdrive/vesa/vm86.c
+++ b/hw/kdrive/vesa/vm86.c
@@ -235,13 +235,9 @@ Vm86DoInterrupt(Vm86InfoPtr vi, int num)
     OsBlockSignals ();
     code = vm86_loop(vi);
     OsReleaseSignals ();
-    if(code < 0) {
-	ErrorF("vm86 failed (errno %d)\n", errno);
+    if(code != 0)
 	return -1;
-    } else if(code != 0) {
-	ErrorF("vm86 returned 0x%04X\n", code);
-	return -1;
-    } else
+    else
 	return 0;
 }
 
@@ -269,14 +265,10 @@ Vm86DoPOST(Vm86InfoPtr vi)
     OsBlockSignals ();
     code = vm86_loop(vi);
     OsReleaseSignals ();
-    if(code < 0) {
-	ErrorF("vm86 failed (errno %d)\n", errno);
-	return -1;
-    } else if(code != 0) {
-	ErrorF("vm86 returned 0x%04X\n", code);
+    if(code != 0)
 	return -1;
-    } else
-	return 0;
+    else
+        return 0;
 }
 
 #define DEBUG_VBE 0
@@ -573,8 +565,17 @@ vm86_loop(Vm86InfoPtr vi)
             Vm86Debug(vi);
             return -1;
         default:
-            ErrorF("Unexpected result code 0x%X from vm86\n", code);
-            Vm86Debug(vi);
+            if(code < 0) {
+                if(errno == ENOSYS) {
+                    ErrorF("No vm86 support.  Are you running on AMD64?\n");
+                } else {
+                    ErrorF("vm86 failed (errno = %d).\n", errno);
+                    Vm86Debug(vi);
+                }
+            } else {
+                ErrorF("Unexpected result code 0x%X from vm86\n", code);
+                Vm86Debug(vi);
+            }
             return -1;
         }
     }



More information about the xorg-commit mailing list