diff options
Diffstat (limited to 'drivers/net/enic/enic_main.c')
-rw-r--r-- | drivers/net/enic/enic_main.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index cf098bb636b8..1232887c243d 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c | |||
@@ -822,14 +822,14 @@ static int enic_set_mac_addr(struct net_device *netdev, char *addr) | |||
822 | static void enic_set_multicast_list(struct net_device *netdev) | 822 | static void enic_set_multicast_list(struct net_device *netdev) |
823 | { | 823 | { |
824 | struct enic *enic = netdev_priv(netdev); | 824 | struct enic *enic = netdev_priv(netdev); |
825 | struct dev_mc_list *list; | 825 | struct netdev_hw_addr *ha; |
826 | int directed = 1; | 826 | int directed = 1; |
827 | int multicast = (netdev->flags & IFF_MULTICAST) ? 1 : 0; | 827 | int multicast = (netdev->flags & IFF_MULTICAST) ? 1 : 0; |
828 | int broadcast = (netdev->flags & IFF_BROADCAST) ? 1 : 0; | 828 | int broadcast = (netdev->flags & IFF_BROADCAST) ? 1 : 0; |
829 | int promisc = (netdev->flags & IFF_PROMISC) ? 1 : 0; | 829 | int promisc = (netdev->flags & IFF_PROMISC) ? 1 : 0; |
830 | unsigned int mc_count = netdev_mc_count(netdev); | 830 | unsigned int mc_count = netdev_mc_count(netdev); |
831 | int allmulti = (netdev->flags & IFF_ALLMULTI) || | 831 | int allmulti = (netdev->flags & IFF_ALLMULTI) || |
832 | mc_count > ENIC_MULTICAST_PERFECT_FILTERS; | 832 | mc_count > ENIC_MULTICAST_PERFECT_FILTERS; |
833 | unsigned int flags = netdev->flags | (allmulti ? IFF_ALLMULTI : 0); | 833 | unsigned int flags = netdev->flags | (allmulti ? IFF_ALLMULTI : 0); |
834 | u8 mc_addr[ENIC_MULTICAST_PERFECT_FILTERS][ETH_ALEN]; | 834 | u8 mc_addr[ENIC_MULTICAST_PERFECT_FILTERS][ETH_ALEN]; |
835 | unsigned int i, j; | 835 | unsigned int i, j; |
@@ -852,10 +852,10 @@ static void enic_set_multicast_list(struct net_device *netdev) | |||
852 | */ | 852 | */ |
853 | 853 | ||
854 | i = 0; | 854 | i = 0; |
855 | netdev_for_each_mc_addr(list, netdev) { | 855 | netdev_for_each_mc_addr(ha, netdev) { |
856 | if (i == mc_count) | 856 | if (i == mc_count) |
857 | break; | 857 | break; |
858 | memcpy(mc_addr[i++], list->dmi_addr, ETH_ALEN); | 858 | memcpy(mc_addr[i++], ha->addr, ETH_ALEN); |
859 | } | 859 | } |
860 | 860 | ||
861 | for (i = 0; i < enic->mc_count; i++) { | 861 | for (i = 0; i < enic->mc_count; i++) { |
@@ -2058,8 +2058,7 @@ static int __devinit enic_probe(struct pci_dev *pdev, | |||
2058 | netdev->watchdog_timeo = 2 * HZ; | 2058 | netdev->watchdog_timeo = 2 * HZ; |
2059 | netdev->ethtool_ops = &enic_ethtool_ops; | 2059 | netdev->ethtool_ops = &enic_ethtool_ops; |
2060 | 2060 | ||
2061 | netdev->features |= NETIF_F_HW_VLAN_TX | | 2061 | netdev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; |
2062 | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER; | ||
2063 | if (ENIC_SETTING(enic, TXCSUM)) | 2062 | if (ENIC_SETTING(enic, TXCSUM)) |
2064 | netdev->features |= NETIF_F_SG | NETIF_F_HW_CSUM; | 2063 | netdev->features |= NETIF_F_SG | NETIF_F_HW_CSUM; |
2065 | if (ENIC_SETTING(enic, TSO)) | 2064 | if (ENIC_SETTING(enic, TSO)) |