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_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to