diff options
author | Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com> | 2016-07-27 12:26:17 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-08-09 01:38:27 +0300 |
commit | 92fbb1df83ec17f62a46b23507ebb3f06ca10cd3 (patch) | |
tree | 5b7eb9d3e03805eef1b6a364b7763bc90b3dc711 /drivers/net/ethernet/emulex/benet/be.h | |
parent | 0aff1fbfe72e47412e3213648e972c339af30e4e (diff) | |
download | linux-92fbb1df83ec17f62a46b23507ebb3f06ca10cd3.tar.xz |
be2net: Avoid unnecessary firmware updates of multicast list
Eachtime the ndo_set_rx_mode() routine is called, the driver programs the
multicast list in the adapter without checking if there are any changes to
the list. This leads to a flood of RX_FILTER cmds when a number of vlan
interfaces are configured over the device, as the ndo_ gets
called for each vlan interface. To avoid this, we now use __dev_mc_sync()
and __dev_uc_sync() API, but only to detect if there is a change in the
mc/uc lists. Now that we use this API, the code has to be-designed to
issue these API calls for each invocation of the be_set_rx_mode() call.
Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
Signed-off-by: Sathya Perla <sathya.perla@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/emulex/benet/be.h')
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h index 4555e041ef69..68687127e4fd 100644 --- a/drivers/net/ethernet/emulex/benet/be.h +++ b/drivers/net/ethernet/emulex/benet/be.h @@ -573,6 +573,8 @@ struct be_adapter { u32 uc_macs; /* Count of secondary UC MAC programmed */ unsigned long vids[BITS_TO_LONGS(VLAN_N_VID)]; u16 vlans_added; + bool update_uc_list; + bool update_mc_list; u32 beacon_state; /* for set_phys_id */ |