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