for (; mc_addr_count > 0; mc_addr_count--) {
                hash_value = igb_hash_mc_addr(hw, mc_addr_list);
                hw_dbg("Hash value = 0x%03X\n", hash_value);
-               hw->mac.ops.mta_set(hw, hash_value);
+               igb_mta_set(hw, hash_value);
                mc_addr_list += ETH_ALEN;
        }
 }
 
        void (*rar_set)(struct e1000_hw *, u8 *, u32);
        s32  (*read_mac_addr)(struct e1000_hw *);
        s32  (*get_speed_and_duplex)(struct e1000_hw *, u16 *, u16 *);
-       void (*mta_set)(struct e1000_hw *, u32);
 };
 
 struct e1000_phy_operations {
 
  *  current value is read, the new bit is OR'd in and the new value is
  *  written back into the register.
  **/
-static void igb_mta_set(struct e1000_hw *hw, u32 hash_value)
+void igb_mta_set(struct e1000_hw *hw, u32 hash_value)
 {
        u32 hash_bit, hash_reg, mta;
 
 
 void igb_clear_vfta(struct e1000_hw *hw);
 void igb_config_collision_dist(struct e1000_hw *hw);
 void igb_init_rx_addrs(struct e1000_hw *hw, u16 rar_count);
+void igb_mta_set(struct e1000_hw *hw, u32 hash_value);
 void igb_put_hw_semaphore(struct e1000_hw *hw);
 void igb_rar_set(struct e1000_hw *hw, u8 *addr, u32 index);
 s32  igb_check_alt_mac_addr(struct e1000_hw *hw);