[Cbe-oss-dev] [Fwd: Oops in spidernet on 2.6.20]
Linas Vepstas
linas at austin.ibm.com
Wed Feb 14 09:41:20 EST 2007
Hi Jeremy,
> Wanted to be sure you'd seen this.
>
> -------- Original Message --------
> Subject: [Cbe-oss-dev] Oops in spidernet on 2.6.20
> Date: Tue, 13 Feb 2007 10:31:39 +1100
> From: Jeremy Kerr <jk at ozlabs.org>
> To: cbe-oss-dev at ozlabs.org
>
> Hi folks,
>
> I'm seeing the following oops when booting 2.6.20 on a QS20:
>
> Spidernet version 1.6 A.
> Unable to handle kernel paging request for data at address 0x0000006c
> Faulting instruction address: 0xc0000000001f077c
> cpu 0x0: Vector: 300 (Data Access) at [c0000000200c3480]
> pc: c0000000001f077c: .spider_net_write_phy+0x20/0x30
> lr: c0000000001f2b64: .reset_one_mii_phy+0x50/0x158
I couldn't reproduce this on my system.
> Looks like card is null in spider_net_write_phy():
>
> static void
> spider_net_write_phy(struct net_device *netdev, int mii_id,
> int reg, int val)
> {
> struct spider_net_card *card = netdev_priv(netdev);
>
> It looks like we're setting the phy ops before the netdev_priv data?
After reading the code carefully, its pretty clear that the
netdev_priv data is set up early enough; is set up by alloc_etherdev()
called by spider_net_alloc_card() called by spider_net_setup_pci_dev()
in spider_net_probe(). In fact, if netdev_priv was null, then
spider_net_alloc_card() would crash, and you'd never get as far as
the phy setup.
Thus I'm stumped by how this happened. Is this reproducible?
--linas
More information about the cbe-oss-dev
mailing list