i386/101168: ncp kernel panic

Maik Ehinger m.ehinger at ltur.de
Tue Aug 1 12:50:17 UTC 2006


>Number:         101168
>Category:       i386
>Synopsis:       ncp kernel panic
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-i386
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 01 12:50:14 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Maik Ehinger
>Release:        6.1-Stable
>Organization:
>Environment:
FreeBSD pcmcb3-104.mcbad.net 6.1-STABLE FreeBSD 6.1-STABLE #0: Tue Aug  1 11:33:31 CEST 2006     root at pcmcb3-104.mcbad.net:/usr/obj/usr/src/sys/GENERIC  i386
>Description:
I get an kernel panic after entering the password for an ncp connection.
Using ncplogin or mount_nwfs makes no difference.

I try to connect to an Novell 6.5 Server with TCP only. Worked well with FreeBSD 4.11


 Fatal trap 12: page fault while in kernel mode
 fault virtual address        = 0x0
 fault code           = supervisor write, page not present
 instruction pointer  = 0x20:0xc068a3fc
 stack pointer                = 0x28:0xdcebc8dc
 frame pointer                = 0x28:0xdcebc8e4
 code segment         = base 0x0, limit 0xfffff, type 0x1b
 = DPL 0, pres 1, def32 1, gran 1
 processor eflags     = interrupt enabled, resume, IOPL = 0
 current process              = 772 (ncplogin)
 trap number          = 12
 panic: page fault
 Uptime: 16m46s
 Dumping 494 MB (2 chunks)
 chunk 0: 1MB (159 pages) ... ok
 chunk 1: 495MB (126511 pages) 479 463 447 431 415 399 383 367 351 335 319 303 287 271 255 239 223 207 191 175 159 143 127 111 95 79 63
 47 31 15 ... ok
 
 Dump complete
 Automatic reboot in 15 seconds - press a key on the console to abort
 Rebooting...


>How-To-Repeat:
Try to mount an NetWare volume using mount_nwfs.
>Fix:
Not really a fix only a panic workaround. It seems to work for me so far without any recognized problems.

I also get some 

md_get_mem(461): Incomplete copy

messages without any known problem.



--- ncp_sock.c.orig              Fri Jan  7 02:45:49 2005
+++ ncp_sock.c           Thu Jul 20 14:12:45 2006
@@ -189,7 +189,12 @@
     struct thread *td = curthread;
     struct ucred *cred = NULL;
 
-    return so->so_proto->pr_usrreqs->pru_sopoll(so, events, cred, td);
+    if ( td->td_selq.tqh_last == NULL ) {
+          printf("ncp_poll: td->td_selq.tqh_last == NULL\n");
+        return 0;               
+    }
+
+   return so->so_proto->pr_usrreqs->pru_sopoll(so, events, cred, td);
 }
 
 int

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-i386 mailing list