Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 294609 Details for
Bug 429241
Xorg crashes right after using fast user switching
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
Modfied patch from Keith Packard
xorg-x11-server-1.3.0.0-waitactive.patch (text/x-patch), 6.71 KB, created by
Nathan G. Grennan
on 2008-02-12 00:18:58 UTC
(
hide
)
Description:
Modfied patch from Keith Packard
Filename:
MIME Type:
Creator:
Nathan G. Grennan
Created:
2008-02-12 00:18:58 UTC
Size:
6.71 KB
patch
obsolete
># On branch master ># Changes to be committed: ># (use "git reset HEAD <file>..." to unstage) ># ># modified: hw/xfree86/os-support/linux/lnx_apm.c ># modified: hw/xfree86/os-support/linux/lnx_font.c ># modified: hw/xfree86/os-support/linux/lnx_init.c ># modified: hw/xfree86/os-support/linux/lnx_jstk.c ># >diff --git a/hw/xfree86/os-support/linux/lnx_apm.c b/hw/xfree86/os-support/linux/lnx_apm.c >index 16ac80d..52b7b7a 100644 >--- a/hw/xfree86/os-support/linux/lnx_apm.c >+++ b/hw/xfree86/os-support/linux/lnx_apm.c >@@ -24,6 +24,7 @@ extern PMClose lnxACPIOpen(void); > #include <sys/stat.h> > #include <fcntl.h> > #include <errno.h> >+#include <xf86_OSlib.h> > > #define APM_PROC "/proc/apm" > #define APM_DEVICE "/dev/apm_bios" >@@ -99,16 +100,19 @@ lnxPMGetEventFromOs(int fd, pmEvent *events, int num) > static pmWait > lnxPMConfirmEventToOs(int fd, pmEvent event) > { >+ int ret; > switch (event) { > case XF86_APM_SYS_STANDBY: > case XF86_APM_USER_STANDBY: >- if (ioctl( fd, APM_IOC_STANDBY, NULL )) >+ SYSCALL (ret = ioctl( fd, APM_IOC_STANDBY, NULL )); >+ if (ret) > return PM_FAILED; > return PM_CONTINUE; > case XF86_APM_SYS_SUSPEND: > case XF86_APM_CRITICAL_SUSPEND: > case XF86_APM_USER_SUSPEND: >- if (ioctl( fd, APM_IOC_SUSPEND, NULL )) { >+ SYSCALL (ret = ioctl( fd, APM_IOC_SUSPEND, NULL )); >+ if (ret) { > /* I believe this is wrong (EE) > EBUSY is sent when a device refuses to be suspended. > In this case we still need to undo everything we have >diff --git a/hw/xfree86/os-support/linux/lnx_font.c b/hw/xfree86/os-support/linux/lnx_font.c >index e9a5b6a..9cede01 100644 >--- a/hw/xfree86/os-support/linux/lnx_font.c >+++ b/hw/xfree86/os-support/linux/lnx_font.c >@@ -273,9 +273,9 @@ lnx_switchaway(void) > Bool ret; > > /* temporarily switch to text mode */ >- ioctl(xf86Info.consoleFd, KDSETMODE, KD_TEXT); >+ SYSCALL (ioctl(xf86Info.consoleFd, KDSETMODE, KD_TEXT)); > ret = lnx_restorefont(); >- ioctl(xf86Info.consoleFd, KDSETMODE, KD_GRAPHICS); >+ SYSCALL (ioctl(xf86Info.consoleFd, KDSETMODE, KD_GRAPHICS)); > return ret; > } > >diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c >index 4c36b7c..3213362 100644 >--- a/hw/xfree86/os-support/linux/lnx_init.c >+++ b/hw/xfree86/os-support/linux/lnx_init.c >@@ -126,13 +127,15 @@ xf86OpenConsole(void) > > if (ShareVTs) > { >- if (ioctl(fd, VT_GETSTATE, &vts) == 0) >+ SYSCALL (ret = ioctl(fd, VT_GETSTATE, &vts)); >+ if (ret == 0) > xf86Info.vtno = vts.v_active; > else > FatalError("xf86OpenConsole: Cannot find the current" > " VT (%s)\n", strerror(errno)); > } else { >- if ((ioctl(fd, VT_OPENQRY, &xf86Info.vtno) < 0) || >+ SYSCALL (ret = ioctl(fd, VT_OPENQRY, &xf86Info.vtno)); >+ if ((ret < 0) || > (xf86Info.vtno == -1)) > FatalError("xf86OpenConsole: Cannot find a free VT: %s\n", > strerror(errno)); >@@ -151,7 +154,8 @@ xf86OpenConsole(void) > FatalError("xf86OpenConsole: Cannot open %s (%s)\n", > fb_dev_name, strerror(errno)); > >- if (ioctl(fbfd, FBIOGET_VSCREENINFO, &var) < 0) >+ SYSCALL (ret = ioctl(fbfd, FBIOGET_VSCREENINFO, &var)); >+ if (ret < 0) > FatalError("xf86OpenConsole: Unable to get screen info %s\n", > strerror(errno)); > } >@@ -220,7 +224,8 @@ xf86OpenConsole(void) > * Linux doesn't switch to an active vt after the last close of a vt, > * so we do this ourselves by remembering which is active now. > */ >- if (ioctl(xf86Info.consoleFd, VT_GETSTATE, &vts) < 0) >+ SYSCALL (ret = ioctl(xf86Info.consoleFd, VT_GETSTATE, &vts)); >+ if (ret < 0) > xf86Msg(X_WARNING,"xf86OpenConsole: VT_GETSTATE failed: %s\n", > strerror(errno)); > else >@@ -232,7 +237,7 @@ xf86OpenConsole(void) > * Detach from the controlling tty to avoid char loss > */ > if ((i = open("/dev/tty",O_RDWR)) >= 0) { >- ioctl(i, TIOCNOTTY, 0); >+ SYSCALL (ioctl(i, TIOCNOTTY, 0)); > close(i); > } > } >@@ -279,7 +289,8 @@ xf86OpenConsole(void) > /* copy info to new console */ > var.yoffset=0; > var.xoffset=0; >- if (ioctl(fbfd, FBIOPUT_VSCREENINFO, &var)) >+ SYSCALL (ret = ioctl(fbfd, FBIOPUT_VSCREENINFO, &var)); >+ if (ret < 0) > FatalError("Unable to set screen info\n"); > close(fbfd); > #endif >@@ -309,6 +322,7 @@ void > xf86CloseConsole() > { > struct vt_mode VT; >+ int ret; > #if defined(DO_OS_FONTRESTORE) > struct vt_stat vts; > int vtno = -1; >@@ -317,7 +331,8 @@ xf86CloseConsole() > if (ShareVTs) return; > > #if defined(DO_OS_FONTRESTORE) >- if (ioctl(xf86Info.consoleFd, VT_GETSTATE, &vts) < 0) >+ SYSCALL (ret = ioctl(xf86Info.consoleFd, VT_GETSTATE, &vts)); >+ if (ret < 0) > xf86Msg(X_WARNING, "xf86CloseConsole: VT_GETSTATE failed: %s\n", > strerror(errno)); > else >@@ -325,17 +340,20 @@ xf86CloseConsole() > #endif > > /* Back to text mode ... */ >- if (ioctl(xf86Info.consoleFd, KDSETMODE, KD_TEXT) < 0) >+ SYSCALL (ret = ioctl(xf86Info.consoleFd, KDSETMODE, KD_TEXT)); >+ if (ret < 0) > xf86Msg(X_WARNING, "xf86CloseConsole: KDSETMODE failed: %s\n", > strerror(errno)); > >- if (ioctl(xf86Info.consoleFd, VT_GETMODE, &VT) < 0) >+ SYSCALL (ret = ioctl(xf86Info.consoleFd, VT_GETMODE, &VT)); >+ if (ret < 0) > xf86Msg(X_WARNING, "xf86CloseConsole: VT_GETMODE failed: %s\n", > strerror(errno)); > else { > /* set dflt vt handling */ > VT.mode = VT_AUTO; >- if (ioctl(xf86Info.consoleFd, VT_SETMODE, &VT) < 0) >+ SYSCALL (ret = ioctl(xf86Info.consoleFd, VT_SETMODE, &VT)); >+ if (ret < 0) > xf86Msg(X_WARNING, "xf86CloseConsole: VT_SETMODE failed: %s\n", > strerror(errno)); > } >diff --git a/hw/xfree86/os-support/linux/lnx_jstk.c b/hw/xfree86/os-support/linux/lnx_jstk.c >index d77631b..80f72e8 100644 >--- a/hw/xfree86/os-support/linux/lnx_jstk.c >+++ b/hw/xfree86/os-support/linux/lnx_jstk.c >@@ -61,6 +61,7 @@ xf86JoystickOn(char *name, int *timeout, int *centerX, int *centerY) > { > int fd; > struct js_status js; >+ int ret; > > #ifdef DEBUG > ErrorF("xf86JoystickOn %s\n", name); >@@ -74,7 +75,8 @@ xf86JoystickOn(char *name, int *timeout, int *centerX, int *centerY) > } > > if (*timeout == 0) { >- if (ioctl (fd, JSIOCGTIMELIMIT, timeout) == -1) { >+ SYSCALL (ret = ioctl (fd, JSIOCGTIMELIMIT, timeout)); >+ if (ret == -1) { > Error("joystick JSIOCGTIMELIMIT ioctl"); > } > else { >@@ -82,7 +84,8 @@ xf86JoystickOn(char *name, int *timeout, int *centerX, int *centerY) > } > } > else { >- if (ioctl(fd, JSIOCSTIMELIMIT, timeout) == -1) { >+ SYSCALL (ret = ioctl(fd, JSIOCSTIMELIMIT, timeout)); >+ if (ret == -1) { > Error("joystick JSIOCSTIMELIMIT ioctl"); > } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 429241
: 294609