Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Aug 2001 19:40:06 -0700
From:      Sam Habash <the@llama.com>
To:        Jonathan Chen <jon@FreeBSD.ORG>
Cc:        mobile@FreeBSD.ORG, hackers@FreeBSD.ORG
Subject:   Re: kern/24854: NEWCARD support for aironet driver an(4)
Message-ID:  <20010819194006.A36256@llama.com>
In-Reply-To: <20010819091452.A86632@enterprise.spock.org>; from jon@FreeBSD.ORG on Sun, Aug 19, 2001 at 09:14:52AM -0400
References:  <20010817011103.A25841@llama.com> <20010818110728.A20719@enterprise.spock.org> <20010818092654.C28694@llama.com> <20010818124503.A26350@enterprise.spock.org> <20010818212011.A33879@llama.com> <20010819091452.A86632@enterprise.spock.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Aug 19, 2001 at 09:14:52AM -0400, Jonathan Chen wrote:

> Are you sure there is no panic while in X?  Your X server might have 
> futzed with the video card so you might not actually see the panic.  If you 
> can try to reproduce this in text mode, then the panic message as well as a 
> traceback would be a very good start.

Hmmm...what I saw appeared to be a spontaneous reboot.  Forgot to
mention that earlier.

> But before you do that, I believe I may have found a fix for a possible 
> panic situation.  This panic occurs in witness_destroy as a supervisor read 
> page not present error (I presume while trying to dereference lock).  This 
> panic can be easily reproduced by running dhclient an0, removing and 
> reinserting the card, then killing dhclient.  The fix appears to be 
> shockingly simple:
> 
> diff -u -r1.8 if_an_pccard.c
> --- sys/dev/an/if_an_pccard.c	2001/05/26 09:26:58	1.8
> +++ sys/dev/an/if_an_pccard.c	2001/08/19 12:57:14
> @@ -118,6 +118,7 @@
>  	sc->an_gone = 1;
>  	bus_teardown_intr(dev, sc->irq_res, sc->irq_handle);
>  	an_release_resources(dev);
> +	mtx_destroy(&sc->an_mtx);
>  	return (0);
>  }
>  

Here's the panic and traceback (typed by hand, haven't set up
serial console for this).  This is BEFORE applying the patch
to if_an_pccard.c, as with the patch, no panic occurs.  Cool.

Fatal trap 12: page fault while in kernel mode
fault virtual addresss	= 0xc
fault code		= supervisor read, page not present
instruction pointer	= 0x8:0xc027a577
stack pointer		= 0x10:0xcd861d3c
frame pointer		= 0x10:0xcd861d48
code segment		= base 0x0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, def32 1, gran 1
processor eflags	= interrupt enabled, resume, IPL = 0
current process		= 542 (dhclient)
kernel : type 12 trap, code=0
Stopped at	 witness_destroy+0x237:  cmpl   %esi,0xc(%edx)

db> trace
witness_destroy(c2577a58,c2577a00,cd861d68,c02acaf4,c2577a58) at
witness_destroy +0x237
mtx_destroy(c2577a58,c2577a00,cd861d7c,c02aae8a,c2577a00) at
mtx_destory+0x73
bpf_freed(c2577a00,cd8a20a0,cd83db80,cd861da4,c0234e6c) at
bpf_freed+0x68
bpfclose)(c2574400,3,2000,cd83db80,c2574400) at bpfclose+0x136
spec_close(cd861dc4,cd861dd8,c02a85d4,cd861dc4,c2511080) at
spec_close+0x90
spec_vnoperate(cd861dc4,c2511080,c2511080,c04354a0,cd8a20a0) at
spec_vnoperate+0x15
vn_close(cd8a20a0,3,c2572f00,cd83db80,cd861e38) at vn_close+0x40
vn_closefile(c2511080,cd83db80,cd83db80,c2511080,c027ba56) at vn_closefile+0x1f
fdrop(c2511080,cd83db80,ffffffff,c2577b50,c027acac) at fdrop+0xaf
closef(c2511080,cd83db80) at closef+0x9b
fdfree(cd83db80,cd83dce8) at fdfree+0x38
exit1(cd83db80,f,0,cd83db80,ffffbfff) at exit1+0x61d
sigexit(cd83db80,f,ffffffff,4,cd83db80) at sigexit+0x2f7
postsig(f) at postsig+0xec
userret(cd83db80,cd861a8,51f,1b,80a9aa0) at userret+0x5b6
syscall(bfbf002f,80a002f,bfbf002f,bfbfe174,80a9aa0) at syscall+0x67b
syscall_with_err_pushed() at syscall_with_err_pushed+0x1b
--- syscall (81, FreeBSD ELF, getpgrp), eip = 0x8055864, esp =
0xbfbfdcd8, ebp = 0xbfbfdd04 ---

--Sam

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010819194006.A36256>