Manfred Antar wrote:
> At 08:16 PM 9/10/2000 -0700, John Baldwin wrote:
> >Manfred Antar wrote:
> >> >From a new kernel compiled from sources current 7:30 pm 9/10/00 pacific time
> >> Although the first occurrence happened this morning after compiling a kernel
> >> after the random dev changes.
> >> The system boots and mounts disks. When it gets to this point:
> >> Additional routing options: TCP extensions=NO TCP keepalive=YES.
> >> routing daemons:.
> >> I think the random dev kicks in at this point
> >>
> >> Fatal trap 12: page fault while in kernel mode
> >> cpuid = 1; lapic.id = 0c000000
> >> fault virtual address = 0x2c
> >> fault code = supervisor read, page not present
> >> instruction pointer = 0x8:0xc014f280
> >> stack pointer = 0x10:0xc9a74f84
> >> frame pointer = 0x10:0xc9a74f9c
> >> code segment = base 0x0, limit 0xfffff, type 0x1b
> >> = DPL 0, pres 1,def 32 1,gran 1
> >> processor flags = interrupt enabled, resume, IOPL = 0
> >> current process = 2 (random)
> >> trap number = 12
> >> panic: page fault
> >> cpuid = 1; lapic.id = 0x000000
> >> boot() called on cpu#1
> >>
> >> syncing disks.......
> >>
> >> The machine then is frozen and needs a reset to work again
> >> the debugger is unavailable
> I backed out to the old versions of the random dev files:
> /sys/dev/randomdev:
> harvest.c
> randomdev.c
> yarrow.c
> yarrow.h
> /sys/sys:
> random.h
>
> And the panic goes away
> Manfred
I've got it fixed. The code is using TAILQ_REMOVE and TAILQ_FIRST to
pull entries out of a tailq while it is walking it via TAILQ_FOREACH.
Changing it to use a while(!TAILQ_EMPTY) instead of using TAILQ_FOREACH
fixes it. I'll be committing the fix in just a sec..
--
John Baldwin <[EMAIL PROTECTED]> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.cslab.vt.edu/~jobaldwi/pgpkey.asc
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message