diff options
author | Yuval Mintz <Yuval.Mintz@caviumnetworks.com> | 2016-10-14 05:19:20 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-10-14 11:59:58 -0400 |
commit | 7b7e70f979e34ed84d725eab8ea42921ab6f42e3 (patch) | |
tree | edc6eceb6d95e30d47f3720470fb625ad07bbbdb /drivers/net/ethernet/qlogic/qede/qede_main.c | |
parent | qede: Prevent GSO on long Geneve headers (diff) | |
download | linux-dev-7b7e70f979e34ed84d725eab8ea42921ab6f42e3.tar.xz linux-dev-7b7e70f979e34ed84d725eab8ea42921ab6f42e3.zip |
qed*: Allow unicast filtering
Apparently qede fails to set IFF_UNICAST_FLT, and as a result is not
actually performing unicast MAC filtering.
While we're at it - relax a hard-coded limitation that limits each
interface into using at most 15 unicast MAC addresses before turning
promiscuous. Instead utilize the HW resources to their limit.
Signed-off-by: Yuval Mintz <Yuval.Mintz@caviumnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qede/qede_main.c')
-rw-r--r-- | drivers/net/ethernet/qlogic/qede/qede_main.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c index 6c2b09c255d5..0e483afc2b87 100644 --- a/drivers/net/ethernet/qlogic/qede/qede_main.c +++ b/drivers/net/ethernet/qlogic/qede/qede_main.c @@ -2365,6 +2365,8 @@ static void qede_init_ndev(struct qede_dev *edev) qede_set_ethtool_ops(ndev); + ndev->priv_flags = IFF_UNICAST_FLT; + /* user-changeble features */ hw_features = NETIF_F_GRO | NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | @@ -3937,7 +3939,7 @@ static void qede_config_rx_mode(struct net_device *ndev) /* Check for promiscuous */ if ((ndev->flags & IFF_PROMISC) || - (uc_count > 15)) { /* @@@TBD resource allocation - 1 */ + (uc_count > edev->dev_info.num_mac_filters - 1)) { accept_flags = QED_FILTER_RX_MODE_TYPE_PROMISC; } else { /* Add MAC filters according to the unicast secondary macs */ |