Module Name:    xsrc
Committed By:   tsutsui
Date:           Wed Mar 17 15:02:27 UTC 2021

Modified Files:
        xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k: x68kKbd.c
            x68kMouse.c
        xsrc/external/mit/xorg-server/dist/hw/sun: sunKbd.c sunMouse.c

Log Message:
Fixes "FatalError re-entered, aborting" error when Xservers get SIGSEGV.

Handle a new DEVICE_ABORT mode perperly in deviceProc funtions.
Also don't exit via FatalError() on an unknown mode because it looks
upstream assumes DDX deviceProc functions don't treat it fatal:
 
https://gitlab.freedesktop.org/xorg/xserver/-/commit/9f79e93b6b3416055d08a0e8f9f16d5fd0649e36


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
    xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kKbd.c
cvs rdiff -u -r1.10 -r1.11 \
    xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kMouse.c
cvs rdiff -u -r1.9 -r1.10 xsrc/external/mit/xorg-server/dist/hw/sun/sunKbd.c
cvs rdiff -u -r1.4 -r1.5 xsrc/external/mit/xorg-server/dist/hw/sun/sunMouse.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kKbd.c
diff -u xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kKbd.c:1.11 xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kKbd.c:1.12
--- xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kKbd.c:1.11	Thu Mar 11 12:08:57 2021
+++ xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kKbd.c	Wed Mar 17 15:02:27 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: x68kKbd.c,v 1.11 2021/03/11 12:08:57 tsutsui Exp $ */
+/* $NetBSD: x68kKbd.c,v 1.12 2021/03/17 15:02:27 tsutsui Exp $ */
 /*-------------------------------------------------------------------------
  * Copyright (c) 1996 Yasushi Yamasaki
  * All rights reserved.
@@ -160,8 +160,9 @@ x68kKbdProc(DeviceIntPtr pDev,	/* Keyboa
             RemoveNotifyFd(x68kKbdPriv.fd);
             pKeyboard->on = FALSE;
             break;
-        default:
-            FatalError("Unknown keyboard operation\n");
+
+        case DEVICE_ABORT:
+            break;
     }
     return Success;
 }

Index: xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kMouse.c
diff -u xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kMouse.c:1.10 xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kMouse.c:1.11
--- xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kMouse.c:1.10	Thu Mar 11 12:08:57 2021
+++ xsrc/external/mit/xorg-server/dist/hw/netbsd/x68k/x68kMouse.c	Wed Mar 17 15:02:27 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: x68kMouse.c,v 1.10 2021/03/11 12:08:57 tsutsui Exp $ */
+/* $NetBSD: x68kMouse.c,v 1.11 2021/03/17 15:02:27 tsutsui Exp $ */
 /*-------------------------------------------------------------------------
  * Copyright (c) 1996 Yasushi Yamasaki
  * All rights reserved.
@@ -195,6 +195,8 @@ x68kMouseProc(DeviceIntPtr device, int w
 		ErrorF("x68kMouseProc ioctl VUIDSFORMAT\n");
 	    break;
 
+	case DEVICE_ABORT:
+	    break;
     }
     return Success;
 }

Index: xsrc/external/mit/xorg-server/dist/hw/sun/sunKbd.c
diff -u xsrc/external/mit/xorg-server/dist/hw/sun/sunKbd.c:1.9 xsrc/external/mit/xorg-server/dist/hw/sun/sunKbd.c:1.10
--- xsrc/external/mit/xorg-server/dist/hw/sun/sunKbd.c:1.9	Thu Mar 11 13:12:34 2021
+++ xsrc/external/mit/xorg-server/dist/hw/sun/sunKbd.c	Wed Mar 17 15:02:27 2021
@@ -692,8 +692,9 @@ sunKbdProc(DeviceIntPtr device, int what
 	RemoveNotifyFd(pPriv->fd);
 	pKeyboard->on = FALSE;
 	break;
-    default:
-	FatalError("Unknown keyboard operation\n");
+
+    case DEVICE_ABORT:
+	break;
     }
     return Success;
 }

Index: xsrc/external/mit/xorg-server/dist/hw/sun/sunMouse.c
diff -u xsrc/external/mit/xorg-server/dist/hw/sun/sunMouse.c:1.4 xsrc/external/mit/xorg-server/dist/hw/sun/sunMouse.c:1.5
--- xsrc/external/mit/xorg-server/dist/hw/sun/sunMouse.c:1.4	Thu Mar 11 11:54:41 2021
+++ xsrc/external/mit/xorg-server/dist/hw/sun/sunMouse.c	Wed Mar 17 15:02:27 2021
@@ -180,6 +180,9 @@ sunMouseProc(DeviceIntPtr device, int wh
 	    pMouse->on = FALSE;
 	    RemoveNotifyFd(sunPtrPriv.fd);
 	    break;
+
+	case DEVICE_ABORT:
+	    break;
     }
     return Success;
 }

Reply via email to