Re: 2.4.17-rc1 kernel panic at boot

Andrew Morton (akpm@zip.com.au)
Tue, 18 Dec 2001 11:24:51 -0800


BURJAN Gabor wrote:
>
> Hello,
>
> On Tue, Dec 18, Keith Owens wrote:
>
> > Not need to go quite that far. It is not necessary to recompile the
> > entire kernel nor do you need to boot a kernel to get the source code
> > for an instruction.
> >
> > cd linux
> > rm drivers/net/3c59x.o
> > make CFLAGS_3c59x.o=-g vmlinux
> > s=$(sed -ne '/vortex_probe1/s/ .*//p' System.map | tr '[a-z]' '[A-Z]')
> > e=$(echo -e "obase=16\nibase=16\n$s+500" | bc)
> > objdump -S --start-address=0x$s --stop-address=0x$e vmlinux
>
> I did this.
>
> c0264048: 39 32 00 0e addi r9,r18,14
> c026404c: 7d 29 52 14 add r9,r9,r10
> c0264050: 91 7d 01 90 stw r11,400(r29) <==
> vp->options = option;
> c0264054: 93 fd 01 8c stw r31,396(r29)
>
> Full output: http://www.csoma.elte.hu/~burjang/objdump-2001-12-18.out

That particular statement looks OK. I'd be suspecting the
next line:

EL3WINDOW(0);

which is a rather sickly macro which does an outw(N, ioaddr), where
ioaddr was passed into the probe function from the PCI layer.

It seems that this is the first IO instruction which the driver
executes, and that's a likely place for it to crash.

My guess would be that something has gone wrong with the PPC
emulation of `outw' to this PCI device's IO space.

What I suggest you do is to add a

printk("ioaddr=%lx\n", ioaddr);

immediately before that EL3WINDOW statement, then take it up
on the appropriate PPC mailing list.

-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/