igb: set lan id prior to configuring phy
authorAlexander Duyck <alexander.h.duyck@intel.com>
Tue, 7 Jul 2009 13:01:55 +0000 (13:01 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 Jul 2009 17:46:43 +0000 (10:46 -0700)
The igb driver was defaulting to using the lock for pci-e function 0 for
all of the phys due to the fact that the lan id was not being set prior to
initialization.  This change makes it so that the function id is set prior
to checking for the phy id.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/igb/e1000_82575.c

index efd9be214885cbc4c5c5282df7072aee901beff9..ac28dd5a4fd137f7cd522bbcf20fb3338ecffc38 100644 (file)
@@ -190,6 +190,10 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
                phy->ops.write_reg          = igb_write_phy_reg_igp;
        }
 
+       /* set lan id */
+       hw->bus.func = (rd32(E1000_STATUS) & E1000_STATUS_FUNC_MASK) >>
+                      E1000_STATUS_FUNC_SHIFT;
+
        /* Set phy->phy_addr and phy->id. */
        ret_val = igb_get_phy_id_82575(hw);
        if (ret_val)