[issue947] Kernel panic during boot in usb_add_task

Nicolas Thery nthery at gmail.com
Wed Feb 13 15:07:40 PST 2008


2008/2/13, Matthew Dillon <dillon at apollo.backplane.com>:
> :New submission from Michael Neumann <mneumann at ntecs.de>:
> :
> :I tried my brand new HP Compaq laptop 6710b under DragonFly, but during boo=
> :ting
> :the installer CD it "throws" a page fault:
> :
> :  uhub0: 2 ports ...
> :  uhub0: <Intel UHCI root hub, ...>
> :
> :  Fatal trap 12: page fault while in kernel mode
> :  fault virtual address =3D 0x0
> :  fault code            =3D supervisor write, page not present
> :  instruction pointer   =3D 0x8:0xc04a9c5c
> :  stack pointer         =3D 0x10:0xc25f8d38
> :  frame pointer         =3D 0x10:0xc25f8d48
> :  code segment          =3D base 0x0, limit 0xfffff, type 0x1b
> :                        =3D DPL 0, pres 1, def32 1, gram 1
> :  processor eflags      =3D interrupt enabled, resume, IOPL =3D 0
> :  current process       =3D Idle
> :  current thread        =3D pri 46 (CRIT)
> :
> :  kernel: type 12, code=3D2
> :  stopped at       usb_add_task+0x4c:    movl     %edi,0(%eax)

The exception occurs in TAILQ_INSERT_HEAD(&taskq->tasks, task, next),
more precisely, looking at the macro expansion, in
*(&taskq->tasks)->tqh_last = task.

So it looks like tqh_last is a NULL ptr which presumably means that
the list head has not been initialized yet.

Maybe usb_add_task() is called before usb_create_event_thread() (which
initializes usb_taskq[]).





More information about the Bugs mailing list