Bug 14576

Summary: Ctrl+Alt+Space causes kernel panic
Product: Base System Reporter: freak <freak>
Component: i386Assignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 3.3-RELEASE   
Hardware: Any   
OS: Any   

Description freak 1999-10-28 15:20:00 UTC
Pressing Ctrl+Alt+Space, outside of X, produces

Fatal trap 9 : general protection fault while in kernel mode

instruction pointer = 0x8:0xc02485ed
stack pointer = 0x10:0xc02eb28c
frame pointer = 0x10:0xc02eb2c4
code segment = base rx0, limit 0xfffff, type 0x1b,
		= DPL 0, pres 1, def32 1, gran 1
precessor eflags = interrupt enabled, resume, iopl=0
current process = idle
interrupt mask = net tty
trap number = 9

panic : general protection fault

How-To-Repeat: Press Ctrl+Alt+Space
Comment 1 yokota 1999-10-29 00:55:35 UTC
>>Number:         14576
>>Category:       i386
>>Synopsis:       Ctrl+Alt+Space causes kernel panic
>>Confidential:   no
>>Severity:       critical
[...]
>>Originator:     Patrick Julien
>>Release:        3.3-RELEASE
>>Organization:
>Fac simile E-commerce
>>Environment:
>FreeBSD damien.fac-simile.com 3.3-RELEASE FreeBSD 3.3-RELEASE #0: 
>Thu Sep 16 23:40:35 GMT 1999     
>jkh@highwing.cdrom.com:/usr/src/sys/compile/GENERIC  i386 
>>Description:
>Pressing Ctrl+Alt+Space, outside of X, produces
>
>Fatal trap 9 : general protection fault while in kernel mode
>
>instruction pointer = 0x8:0xc02485ed
>stack pointer = 0x10:0xc02eb28c
>frame pointer = 0x10:0xc02eb2c4
>code segment = base rx0, limit 0xfffff, type 0x1b,
>		= DPL 0, pres 1, def32 1, gran 1
>precessor eflags = interrupt enabled, resume, iopl=0
>current process = idle
>interrupt mask = net tty
>trap number = 9
>
>panic : general protection fault

This was fixed in both -CURRENT and -STABLE just after 3.3 was
released.  *sigh*

Please apply the attached patch to /sys/i386/apm/apm.c and rebuild the
kernel, then all should be fine.

If you don't like to rebuild the kernel, you can edit your keymap file
so that it won't cause panic.  You must be loading your keymap from
/usr/share/syscons/keymap.  Find your keymap and locate the following
line.

  057   ' '    ' '    nul    ' '    ' '    ' '    susp   ' '     O
                                                  ~~~~
And change it to

  057   ' '    ' '    nul    ' '    ' '    ' '    '  '   ' '     O
                                                  ~~~~ (a quoted space)
You must change the next line too.

  104   slock  saver  slock  saver  susp   nop    susp   nop     O
                                    ~~~~          ~~~~
Change this to

  104   slock  saver  slock  saver  nop    nop    nop    nop     O


Kazu

Index: apm.c
===================================================================
RCS file: /src/CVS/src/sys/i386/apm/apm.c,v
retrieving revision 1.77.2.8
retrieving revision 1.77.2.9
diff -u -r1.77.2.8 -r1.77.2.9
--- apm.c	1999/09/12 01:06:28	1.77.2.8
+++ apm.c	1999/09/20 15:34:29	1.77.2.9
@@ -621,6 +621,9 @@
 apm_suspend(int state)
 {
 	struct apm_softc *sc = &apm_softc;
+
+	if (!sc->initialized)
+		return;
 
 	switch (state) {
 	case PMST_SUSPEND:
Comment 2 yokota freebsd_committer freebsd_triage 1999-11-08 09:33:19 UTC
State Changed
From-To: open->closed

The bug has been fixed in both -CURRENT and -STABLE.