Index: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_acpi.c =================================================================== RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_acpi.c,v retrieving revision 1.2 diff -u -r1.2 lnx_acpi.c --- xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_acpi.c 31 Oct 2005 05:45:40 -0000 1.2 +++ xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_acpi.c 2 Jan 2006 11:57:36 -0000 @@ -45,6 +45,13 @@ memset(ev, 0, LINE_LENGTH); n = read( fd, ev, LINE_LENGTH ); + if (n <= 0) { + xf86MsgVerb(X_WARNING,3,"Error reading the ACPI Event handler, disabling.\n"); + if (n < 0) + xf86MsgVerb(X_WARNING,3,"%s\n", strerror(errno)); + lnxCloseACPI(); + return 0; + } /* Check that we have a video event */ if (strstr(ev, "video") == ev) { @@ -160,6 +167,9 @@ #ifdef DEBUG ErrorF("ACPI: Closing device\n"); #endif + xf86PMGetEventFromOs = NULL; + xf86PMConfirmEventToOs = NULL; + if (ACPIihPtr) { fd = xf86RemoveInputHandler(ACPIihPtr); shutdown(fd, 2);