diff options
author | Jiri Pirko <jpirko@redhat.com> | 2011-08-16 02:29:00 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-08-17 23:21:27 -0400 |
commit | 01789349ee52e4a3faf376f1485303d9723c4f1f (patch) | |
tree | cea58b51337ffda221f67d47dd234e52f76f65cf /drivers/net/ethernet/chelsio | |
parent | d03462b999307ec5c186851ec9c5751bd5a675f7 (diff) |
net: introduce IFF_UNICAST_FLT private flag
Use IFF_UNICAST_FTL to find out if driver handles unicast address
filtering. In case it does not, promisc mode is entered.
Patch also fixes following drivers:
stmmac, niu: support uc filtering and yet it propagated
ndo_set_multicast_list
bna, benet, pxa168_eth, ks8851, ks8851_mll, ksz884x : has set
ndo_set_rx_mode but do not support uc filtering
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/chelsio')
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c index c9957b7f17b5..90b4921cac9b 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <linux/err.h> | 41 | #include <linux/err.h> |
42 | #include <linux/etherdevice.h> | 42 | #include <linux/etherdevice.h> |
43 | #include <linux/firmware.h> | 43 | #include <linux/firmware.h> |
44 | #include <linux/if.h> | ||
44 | #include <linux/if_vlan.h> | 45 | #include <linux/if_vlan.h> |
45 | #include <linux/init.h> | 46 | #include <linux/init.h> |
46 | #include <linux/log2.h> | 47 | #include <linux/log2.h> |
@@ -3639,6 +3640,8 @@ static int __devinit init_one(struct pci_dev *pdev, | |||
3639 | netdev->features |= netdev->hw_features | highdma; | 3640 | netdev->features |= netdev->hw_features | highdma; |
3640 | netdev->vlan_features = netdev->features & VLAN_FEAT; | 3641 | netdev->vlan_features = netdev->features & VLAN_FEAT; |
3641 | 3642 | ||
3643 | netdev->priv_flags |= IFF_UNICAST_FLT; | ||
3644 | |||
3642 | netdev->netdev_ops = &cxgb4_netdev_ops; | 3645 | netdev->netdev_ops = &cxgb4_netdev_ops; |
3643 | SET_ETHTOOL_OPS(netdev, &cxgb_ethtool_ops); | 3646 | SET_ETHTOOL_OPS(netdev, &cxgb_ethtool_ops); |
3644 | } | 3647 | } |
diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c index ec799139dfe2..da9072bfca8b 100644 --- a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | |||
@@ -2625,6 +2625,8 @@ static int __devinit cxgb4vf_pci_probe(struct pci_dev *pdev, | |||
2625 | if (pci_using_dac) | 2625 | if (pci_using_dac) |
2626 | netdev->features |= NETIF_F_HIGHDMA; | 2626 | netdev->features |= NETIF_F_HIGHDMA; |
2627 | 2627 | ||
2628 | netdev->priv_flags |= IFF_UNICAST_FLT; | ||
2629 | |||
2628 | netdev->netdev_ops = &cxgb4vf_netdev_ops; | 2630 | netdev->netdev_ops = &cxgb4vf_netdev_ops; |
2629 | SET_ETHTOOL_OPS(netdev, &cxgb4vf_ethtool_ops); | 2631 | SET_ETHTOOL_OPS(netdev, &cxgb4vf_ethtool_ops); |
2630 | 2632 | ||