Alpha DP264, test12. Panic during boot.

I copied this from the console (by hand):

swapper(1): Oops 0

pc = [<fffffc000044a4a4>] ra = [<fffffc000044a4dc>] ps = 0000

v0 = fffffc003ff70300 t0 = 0000000000000001 t1 = 00000000000001f7

t2 = 00000000000001f0 t3 = 0000000000000000 t4 = 00000000000003f6

t5 = 00000000000003f6 t6 = 0000000000000001 t7 = fffffc00015f8000

s0 = 0000000000000000 s1 = fffffc003ff6a8b8 s2 = 0000000000000000

s3 = 0000000000000000 s4 = 0000000000000000 s5 = 0000000000000000

s6 = 0000000000000000

a0 = 0000000000000000 a1 = 0000000000000000 a2 = 0000000000000000

a3 = 0000000000000000 a4 = 0000000000000000 a5 = 0000000000000000

t8 = 0000000000000000 t9 = 0000000000000000 t10= 0000000000000000

t11= 0000000000000000 pv = fffffc000033f260 at = 0000000000000000

gp = fffffc00004b2000 sp = fffffc00015fbd20

Code: a4ca0010 ldq t5,16(s1)

a4aa0008 ldq t4,8(s1)

c3e00003 br .+16

47ff041f or zero,zero,zero

2fe00000 ldq_u zero,0(v0)

47e9040b or zero,s0,s2

*a52b0000 ldq s0,0(s2)

40c50524 subq t5,t4,t3

Trace:310080 310080 310080 310098 310630 310080 310604 3105d8 310604

Kernel panic: Attempted to kill init!

Ksymoops (2.3.5) refused to process it (couldn't find the Code line) but

it did locate this code in pdev_sort_resources() in

drivers/pci/setup-res.c, which was compiled as

gcc -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2

-fomit-frame-pointer -fno-strict-aliasing -pipe -mno-fp-regs -ffixed-8

-mcpu=ev6 -Wa,-mev6 -c -o setup-res.o setup-res.c

resulting in:

ldq $6,16($10)

ldq $5,8($10)

br $31,$L911

.align 4

$L913:

mov $9,$11 list = list->next

$L911:

ldq $9,0($11) ln = list->next

subq $6,$5,$4

in which $L913: is the top of the loop:

for (list = head; ; list = list->next) {

unsigned long size = 0;

struct resource_list *ln = list->next;

if (ln)

size = ln->res->end - ln->res->start;

if (r->end - r->start > size) {

tmp = kmalloc(sizeof(*tmp), GFP_KERNEL);

tmp->next = ln;

tmp->res = r;

tmp->dev = dev;

list->next = tmp;

break;

}

}

So, presumably, near the end of the loop list->next is NULL and

the line

struct resource_list *ln = list->next;

causes the oops.

Dr. Tom Holroyd

"I am, as I said, inspired by the biological phenomena in which

chemical forces are used in repetitious fashion to produce all

kinds of weird effects (one of which is the author)."

-- Richard Feynman, _There's Plenty of Room at the Bottom_