2.4.19-pre4-ac4 kills my gdm
This is kind of odd - I have an Athlon 850 with a sis 730 chipset. X detects the "sis 630" as my video chipset.
under 2.4.19-pre4-ac3 all is good - reboot to 2.4.19-pre4-ac4 and gdm won't start.
X does start successfully.. but not gdm. I can go to runlevel 3 and run startx without a problem (i.e. get a window manager, etc..)
If I boot back to 2.4.19-pre4-ac3 all is well again.
/var/log/gdm/:0.log complains of a lock
-----
Fatal server error:
Server is already active for display 0
If this server is no longer running, remove /tmp/.X0-lock and start again.
When reporting a problem related to a server crash, please send the full server output, not just the last messages. Please report problems to [email protected].
-----
However clearing the lock (and making sure its gone when the sever starts) is of no help.
-Patrick
Quoted 5 lines
X does start successfully.. but not gdm. I can go to runlevel 3 and run startx without a problem (i.e. get a window manager, etc..)
If I boot back to 2.4.19-pre4-ac3 all is well again.
Can you do a clean build with pre4-ac4 for non athlon cpu, try that, then a clean built back to with athlon cpu just to verify that is the actual issue ?
Alan,
mea culpa on this one - my problem appears to be with the only other patch I was running - I believed I was also running it on ac3, but it now appears that I was thinking of another box.
The other patch was corey minyard's "allow signal handler to not call handler" patch that I was interested in seeing its impact on a userspace project of mine. It kills gdm (at least with ac4.. maybe others?)
thanks,
-Pat
[Alan Cox: Thu, Apr 04, 2002 at 04:16:24PM +0100]
Quoted 9 lines
Quoted 5 lines
X does start successfully.. but not gdm. I can go to runlevel 3 and run startx without a problem (i.e. get a window manager, etc..)
If I boot back to 2.4.19-pre4-ac3 all is well again.
Can you do a clean build with pre4-ac4 for non athlon cpu, try that, then a clean built back to with athlon cpu just to verify that is the actual issue ?
Quoted 6 lines · Patrick R. McManus
Alan,
mea culpa on this one - my problem appears to be with the only other patch I was running - I believed I was also running it on ac3, but it now appears that I was thinking of another box.
Quoted 8 lines
The other patch was corey minyard's "allow signal handler to not call handler" patch that I was interested in seeing its impact on a userspace project of mine. It kills gdm (at least with ac4.. maybe others?)
thanks,
-Pat
Yet, it does seem to kill gdm. xdm and kdm seem to work fine.
Ok, I see the problem. I've fixed it, booted and tried gdm, and it works fine. The SA_ONESHOT was checked in the wrong place, the handler is set in the frame_setup routines, so I have to check and set the handler due to the SA_ONESHOT flag after this. The patch is attached.
-Corey
arch/i386/kernel/signal.c renamed from arch/i386/kernel/signal.c.nocallhndlr +16 -13
@@ -558,22 +558,25 @@ } } -/* Set up the stack frame */ -if (ka->sa.sa_flags &SA_SIGINFO ) -setup_rt_frame (sig, ka, info, oldset, regs); -else -setup_frame (sig, ka, oldset, regs); +/* Set up the stack frame if we are calling the handler. */ +if (! (ka->sa.sa_flags &SA_NOCALLHNDLR )) { +if (ka->sa.sa_flags &SA_SIGINFO ) +setup_rt_frame (sig, ka, info, oldset, regs); +else +setup_frame (sig, ka, oldset, regs); + +if (!(ka->sa.sa_flags &SA_NODEFER )) { +spin_lock_irq (¤t->sigmask_lock); +sigorsets (¤t->blocked,¤t->blocked, + &ka->sa.sa_mask); +sigaddset (¤t->blocked,sig); +recalc_sigpending (current); +spin_unlock_irq (¤t->sigmask_lock); + } + }if (ka->sa.sa_flags &SA_ONESHOT ) ka->sa.sa_handler =SIG_DFL ; - -if (!(ka->sa.sa_flags &SA_NODEFER )) { -spin_lock_irq (¤t->sigmask_lock); -sigorsets (¤t->blocked,¤t->blocked,&ka->sa.sa_mask); -sigaddset (¤t->blocked,sig); -recalc_sigpending (current); -spin_unlock_irq (¤t->sigmask_lock); - } }/*
include/asm-i386/signal.h renamed from include/asm-i386/signal.h.nocallhndlr +1 -0
@@ -91,6 +91,7 @@#define SA_RESTART 0x10000000#define SA_NODEFER 0x40000000#define SA_RESETHAND 0x80000000 +#define SA_NOCALLHNDLR 0x00800000/* Don't really call the handler. */ #define SA_NOMASK SA_NODEFER#define SA_ONESHOT SA_RESETHAND