Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 5803 - gdm/kernel bug
Summary: gdm/kernel bug
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Brandon Low (RETIRED)
URL: http://www.cs.helsinki.fi/linux/linux...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-07-30 23:46 UTC by Peter Gavin
Modified: 2003-02-04 19:42 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Gavin 2002-07-30 23:46:07 UTC
I had the same problem the guy who emailed this had. I've already tested this
fix, it seems to do the job. I adapted the patch to work with
gentoo-sources-2.4.19-r7:

--- include/asm-i386/signal.h.orig      Sun Jul 28 20:15:38 2002
+++ include/asm-i386/signal.h   Tue Jul 30 19:09:03 2002
@@ -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
--- arch/i386/kernel/signal.c.orig      Sun Jul 28 19:02:15 2002
+++ arch/i386/kernel/signal.c   Tue Jul 30 19:06:50 2002
@@ -579,22 +579,26 @@
        }
 #endif

-       /* 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(&current->sigmask_lock);
+                       sigorsets(&current->blocked,&current->blocked,
+                                 &ka->sa.sa_mask);
+                       sigaddset(&current->blocked,sig);
+                       recalc_sigpending(current);
+                       spin_unlock_irq(&current->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(&current->sigmask_lock);
-               sigorsets(&current->blocked,&current->blocked,&ka->sa.sa_mask);
-               sigaddset(&current->blocked,sig);
-               recalc_sigpending(current);
-               spin_unlock_irq(&current->sigmask_lock);
-       }
 }

 /*
Comment 1 Peter Gavin 2002-07-31 09:49:25 UTC
Go figure... this patch worked for me for a little while, but stopped working
once I rebooted. Basically, what happens is gdm will start fine, but once I try
to log in, it looks like the new X server crashes, then the gdm login screen
comes back. This doesn't happen with xdm or kdm.
Comment 2 Brandon Low (RETIRED) gentoo-dev 2002-09-06 18:16:40 UTC
please test on gentoo-sources-2.4.19-r9 and report the results ;)
Comment 3 Brandon Low (RETIRED) gentoo-dev 2002-12-11 17:13:10 UTC
if this is still an issue reopen the bug.