diff --git a/kernel.spec b/kernel.spec index b42884a48..1be1b8ade 100644 --- a/kernel.spec +++ b/kernel.spec @@ -640,6 +640,8 @@ Patch580: linux-2.6-sparc-selinux-mprotect-checks.patch Patch610: hda_intel-prealloc-4mb-dmabuffer.patch +Patch700: linux-2.6-e1000-ich9-montevina.patch + Patch800: linux-2.6-crash-driver.patch # crypto/ @@ -1249,6 +1251,9 @@ ApplyPatch linux-2.6-silence-fbcon-logo.patch # /dev/crash driver. ApplyPatch linux-2.6-crash-driver.patch +# Hack e1000e to work on Montevina SDV +ApplyPatch linux-2.6-e1000-ich9-montevina.patch + # crypto/ # Assorted Virt Fixes @@ -1930,6 +1935,9 @@ fi # || || %changelog +* Wed Sep 29 2010 Dave Jones +- Add back an old hack to make an SDV e1000e variant work. + * Wed Sep 29 2010 Dave Jones - Enable IB700 watchdog (used by qemu/kvm). (#637152) diff --git a/linux-2.6-e1000-ich9-montevina.patch b/linux-2.6-e1000-ich9-montevina.patch new file mode 100644 index 000000000..888d0a766 --- /dev/null +++ b/linux-2.6-e1000-ich9-montevina.patch @@ -0,0 +1,30 @@ +This only showed up in one SDV (Montevina). +The PCIE slots don't seem to like network cards, so this is the only hope +to get networking working. It's never going upstream, but it's low impact +enough to carry just to keep those SDVs working. + +--- linux-2.6.35.noarch/drivers/net/e1000e/ich8lan.c~ 2010-09-29 17:53:13.000000000 -0400 ++++ linux-2.6.35.noarch/drivers/net/e1000e/ich8lan.c 2010-09-29 17:54:00.000000000 -0400 +@@ -424,6 +424,12 @@ static s32 e1000_init_phy_params_ich8lan + + /* Verify phy id */ + switch (phy->id) { ++ case 0: ++ if (hw->adapter->pdev->device == 0x10be) ++ hw_dbg(hw, "got 0 phy id, trying anyway"); ++ /* Fall through to IGP03E1000 case below */ ++ else ++ return -E1000_ERR_PHY; + case IGP03E1000_E_PHY_ID: + phy->type = e1000_phy_igp_3; + phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; +--- linux-2.6.35.noarch/drivers/net/e1000e/netdev.c~ 2010-09-29 17:54:07.000000000 -0400 ++++ linux-2.6.35.noarch/drivers/net/e1000e/netdev.c 2010-09-29 17:54:29.000000000 -0400 +@@ -5994,6 +5994,7 @@ static DEFINE_PCI_DEVICE_TABLE(e1000_pci + { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M), board_ich9lan }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M_AMT), board_ich9lan }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH9_IGP_M_V), board_ich9lan }, ++ { PCI_VDEVICE(INTEL, 0x10be), board_ich9lan }, + + { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_LM), board_ich9lan }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_ICH10_R_BM_LF), board_ich9lan },