bluetooth / hcseriald panics -current.
Maksim Yevmenkin
maksim.yevmenkin at savvis.net
Tue Nov 2 11:53:34 PST 2004
Hi Niki,
sorry for the delay. i was able to reproduce and track down the problem.
please find attached patch. let me know if it works for you.
i'm sorry about this.
max
Niki Denev wrote:
> Maksim Yevmenkin writes:
>
>>
>> stack trace?
>> what is the version of sio.c?
>>
>> i'm trying to reproduce it on my system with xircom cbt adapter.
>>
>
> sio.c is 1.456
>
> here is the crash message and the trace :
>
> kernel trap 12 with interrupts disabled
>
> Fatal trap 12: page fault while in kernel mode
> fault virtual address = 0x64
> fault code = supervisor write, page not present
> instruction pointer = 0x8:0xc062f2b1
> stack pointer = 0x10:0xe6879a2c
> frame pointer = 0x10:0xe6879a38
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, def32 1, gran 1
> processor eflags = resume, IOPL = 0
> current process = 542 (hcseriald)
> [thread 100071]
> Stopped at comstop+0x75: andl $-0x5,0x64(%eax)
> db> trace
> comstop(c1d6c000,3) at comstop+0x75
> ttyflush(c1d6c000,3,c1fd0600,303468,e6879a80) at ttyflush+0x37
> ng_h4_open(c1d5f900,c1d6c000) at ng_h4_open+0x194
> ttioctl(c1d6c000,8004741b,e6879c60,3,c206a948) at ttioctl+0xc32
> ttyioctl(c1d5f900,8004741b,e6879c60,3,c1d8b180) at ttyioctl+0x41
> spec_ioctl(d540bb88,e6879c34,c056a017,e6879b88,c06e8100) at spec_ioctl+0xee
> spec_vnoperate(d540bb88) at spec_vnoperate+0x13
> vn_ioctl(c1d84110,8004741b,e6879c60,c1ff0380,c1d8b180) at vn_ioctl+0x1ab
> ioctl(c1d8b180,e6879d14,3,1,246) at ioctl+0x3e0
> syscall(2f,2f,2f,bfbfe8ec,bfbfee67) at syscall+0x213
> Xint0x80_syscall() at Xint0x80_syscall+0x1f
> --- syscall (54, FreeBSD ELF32, ioctl), eip = 0x280ce80f, esp =
> 0xbfbfe80c, ebp = 0xbfbfed54 ---
> db>
>
> --niki
>
-------------- next part --------------
--- /usr/src/sys/netgraph/bluetooth/drivers/h4/ng_h4.c Sat Jul 10 17:06:58 2004
+++ ng_h4.c Tue Nov 2 11:47:26 2004
@@ -25,7 +25,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ng_h4.c,v 1.5 2003/05/10 05:51:25 max Exp $
+ * $Id: ng_h4.c,v 1.7 2004/08/23 18:08:15 max Exp $
* $FreeBSD: src/sys/netgraph/bluetooth/drivers/h4/ng_h4.c,v 1.10 2004/06/26 08:44:04 phk Exp $
*
* Based on:
@@ -70,6 +70,8 @@
*****************************************************************************
*****************************************************************************/
+NET_NEEDS_GIANT("ng_h4");
+
/* MALLOC define */
#ifndef NG_SEPARATE_MALLOC
MALLOC_DEFINE(M_NETGRAPH_H4, "netgraph_h4", "Netgraph Bluetooth H4 node");
@@ -199,7 +201,7 @@
/* Set back pointers */
NG_NODE_SET_PRIVATE(sc->node, sc);
- tp->t_sc = (caddr_t) sc;
+ tp->t_lsc = (caddr_t) sc;
/* The node has to be a WRITER because data can change node status */
NG_NODE_FORCE_WRITER(sc->node);
@@ -228,7 +230,7 @@
static int
ng_h4_close(struct tty *tp, int flag)
{
- ng_h4_info_p sc = (ng_h4_info_p) tp->t_sc;
+ ng_h4_info_p sc = (ng_h4_info_p) tp->t_lsc;
int s;
s = spltty(); /* XXX */
@@ -236,7 +238,7 @@
ttyflush(tp, FREAD | FWRITE);
clist_free_cblocks(&tp->t_outq);
if (sc != NULL) {
- tp->t_sc = NULL;
+ tp->t_lsc = NULL;
if (sc->node != NULL) {
if (sc->flags & NG_H4_TIMEOUT)
@@ -285,7 +287,7 @@
ng_h4_ioctl(struct tty *tp, u_long cmd, caddr_t data, int flag,
struct thread *td)
{
- ng_h4_info_p sc = (ng_h4_info_p) tp->t_sc;
+ ng_h4_info_p sc = (ng_h4_info_p) tp->t_lsc;
int s, error = 0;
s = spltty(); /* XXX */
@@ -326,7 +328,7 @@
static int
ng_h4_input(int c, struct tty *tp)
{
- ng_h4_info_p sc = (ng_h4_info_p) tp->t_sc;
+ ng_h4_info_p sc = (ng_h4_info_p) tp->t_lsc;
if (sc == NULL || tp != sc->tp ||
sc->node == NULL || NG_NODE_NOT_VALID(sc->node))
@@ -546,7 +548,7 @@
static int
ng_h4_start(struct tty *tp)
{
- ng_h4_info_p sc = (ng_h4_info_p) tp->t_sc;
+ ng_h4_info_p sc = (ng_h4_info_p) tp->t_lsc;
if (sc == NULL || tp != sc->tp ||
sc->node == NULL || NG_NODE_NOT_VALID(sc->node))
More information about the freebsd-current
mailing list