linux/drivers/net/e1000e
Anton Blanchard 0c75ba2254 e1000e: Fix oops caused by ASPM patch.
Commit 6f461f6c7c
("e1000e: enable/disable ASPM L0s and L1 and ERT according to hardware errata")
oopses on one of my ppc64 boxes with a NULL pointer (0x4a):

Unable to handle kernel paging request for data at address 0x0000004a
Faulting instruction address: 0xc0000000004d2f1c
cpu 0xe: Vector: 300 (Data Access) at [c000000bec1833a0]
    pc: c0000000004d2f1c: .e1000e_disable_aspm+0xe0/0x150
    lr: c0000000004d2f0c: .e1000e_disable_aspm+0xd0/0x150
   dar: 4a

[c000000bec1836d0] c00000000069b9d8 .e1000_probe+0x84/0xe8c
[c000000bec1837b0] c000000000386d90 .local_pci_probe+0x4c/0x68
[c000000bec183840] c0000000003872ac .pci_device_probe+0xfc/0x148
[c000000bec183900] c000000000409e8c .driver_probe_device+0xe4/0x1d0
[c000000bec1839a0] c00000000040a024 .__driver_attach+0xac/0xf4
[c000000bec183a40] c000000000409124 .bus_for_each_dev+0x9c/0x10c
[c000000bec183b00] c000000000409c1c .driver_attach+0x40/0x60
[c000000bec183b90] c0000000004085dc .bus_add_driver+0x150/0x328
[c000000bec183c40] c00000000040a58c .driver_register+0x100/0x1c4
[c000000bec183cf0] c00000000038764c .__pci_register_driver+0x78/0x128

Seems like pdev->bus->self == NULL. I haven't touched pci in a long time
so I'm trying to remember what this means (no pcie bridge perhaps?)

The patch below fixes the oops for me.

Signed-off-by: Anton Blanchard <anton@samba.org>
Reviewed-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-04-30 12:51:36 -07:00
..
82571.c e1000e: enable/disable ASPM L0s and L1 and ERT according to hardware errata 2010-04-27 10:18:26 -07:00
Makefile e1000e: reformat comment blocks, cosmetic changes only 2008-03-28 22:14:56 -04:00
defines.h e1000e: fix packet corruption and tx hang during NFSv2 2010-03-05 14:00:18 -08:00
e1000.h e1000e: enable/disable ASPM L0s and L1 and ERT according to hardware errata 2010-04-27 10:18:26 -07:00
es2lan.c e1000e: provide MAC-family-specific function to set LAN ID 2010-01-13 20:31:57 -08:00
ethtool.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
hw.h e1000e: genericize the update multicast address list 2010-01-13 20:31:57 -08:00
ich8lan.c e1000e: fix packet corruption and tx hang during NFSv2 2010-03-05 14:00:18 -08:00
lib.c Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
netdev.c e1000e: Fix oops caused by ASPM patch. 2010-04-30 12:51:36 -07:00
param.c e1000e: update copyright information 2009-11-21 11:34:09 -08:00
phy.c e1000e: MDIO slow mode should always be done for 82577 2010-01-13 17:12:46 -08:00