summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
diff options
context:
space:
mode:
authorAlexander Duyck2015-10-23 01:26:42 +0200
committerJeff Kirsher2015-12-03 11:32:11 +0100
commit2f9be1665585a3757a00a6d1b8201d0ede937a34 (patch)
tree9638f7cd2c05fa560b22fceb0b7680bb783128d2 /drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
parentixgbe: Use __dev_uc_sync and __dev_uc_unsync for unicast addresses (diff)
downloadkernel-qcow2-linux-2f9be1665585a3757a00a6d1b8201d0ede937a34.tar.gz
kernel-qcow2-linux-2f9be1665585a3757a00a6d1b8201d0ede937a34.tar.xz
kernel-qcow2-linux-2f9be1665585a3757a00a6d1b8201d0ede937a34.zip
ixgbe: Allow FDB entries access to more RAR filters
This change makes it so that we allow the PF to make use of all free RAR entries for FDB use if needed. Previously the code limited us to 16 unicast entries, however this was shared between MACVLAN which wasn't limited and the FDB code which was. So instead of treating the FDB code as a second class citizen I have updated it so that it has access to just as many entries as the MACVLAN filters. Signed-off-by: Alexander Duyck <aduyck@mirantis.com> Tested-by: Darin Miller <darin.j.miller@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_main.c')
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 708e2109cdfa..378c44d0f017 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -8200,7 +8200,10 @@ static int ixgbe_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
{
/* guarantee we can provide a unique filter for the unicast address */
if (is_unicast_ether_addr(addr) || is_link_local_ether_addr(addr)) {
- if (IXGBE_MAX_PF_MACVLANS <= netdev_uc_count(dev))
+ struct ixgbe_adapter *adapter = netdev_priv(dev);
+ u16 pool = VMDQ_P(0);
+
+ if (netdev_uc_count(dev) >= ixgbe_available_rars(adapter, pool))
return -ENOMEM;
}