be2net: Avoid unnecessary firmware updates of multicast list
authorSriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
Wed, 27 Jul 2016 09:26:17 +0000 (05:26 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 8 Aug 2016 22:38:27 +0000 (15:38 -0700)
commit92fbb1df83ec17f62a46b23507ebb3f06ca10cd3
tree5b7eb9d3e03805eef1b6a364b7763bc90b3dc711
parent0aff1fbfe72e47412e3213648e972c339af30e4e
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>
drivers/net/ethernet/emulex/benet/be.h
drivers/net/ethernet/emulex/benet/be_main.c