linux/drivers/net/ethernet/mscc
Claudiu Manoil 40a1578d63 ocelot: Dont allocate another multicast list, use __dev_mc_sync
Doing kmalloc in atomic context is always an issue,
more so for a list that can grow significantly.
Turns out that the driver only uses the duplicated
list of multicast mac addresses to keep track of
what addresses to delete from h/w before committing
the new list from kernel to h/w back again via set_rx_mode,
every time this list gets updated by the kernel.
Given that the h/w knows how to add and delete mac addresses
based on the mac address value alone, __dev_mc_sync should be
the much better choice of kernel API for these operations
avoiding the considerable overhead of maintaining a duplicated
list in the driver.

Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Tested-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-05-22 12:08:43 -07:00
..
Kconfig
Makefile
ocelot.c ocelot: Dont allocate another multicast list, use __dev_mc_sync 2019-05-22 12:08:43 -07:00
ocelot.h ocelot: Dont allocate another multicast list, use __dev_mc_sync 2019-05-22 12:08:43 -07:00
ocelot_ana.h
ocelot_board.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-03-04 13:26:15 -08:00
ocelot_dev.h
ocelot_io.c
ocelot_qs.h
ocelot_qsys.h
ocelot_regs.c
ocelot_rew.h
ocelot_sys.h