From: Alan Brady <alan.br...@intel.com>

When adding a bunch of VLANs to all the ports on a device, it's possible
to run out of space for broadcast filters.  The driver should trigger
overflow promiscuous in this circumstance to prevent traffic from being
unexpectedly dropped.

Signed-off-by: Alan Brady <alan.br...@intel.com>
Tested-by: Andrew Bowers <andrewx.bow...@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirs...@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e_main.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c 
b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 0f256ee87c2a..d96ecfc37bbc 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -2177,11 +2177,13 @@ i40e_aqc_broadcast_filter(struct i40e_vsi *vsi, const 
char *vsi_name,
                                                            NULL);
        }
 
-       if (aq_ret)
+       if (aq_ret) {
+               set_bit(__I40E_VSI_OVERFLOW_PROMISC, vsi->state);
                dev_warn(&vsi->back->pdev->dev,
-                        "Error %s setting broadcast promiscuous mode on %s\n",
+                        "Error %s, forcing overflow promiscuous on %s\n",
                         i40e_aq_str(hw, hw->aq.asq_last_status),
                         vsi_name);
+       }
 
        return aq_ret;
 }
-- 
2.14.3

Reply via email to