[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