mirror of https://github.com/torvalds/linux.git
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> |
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| ocelot.c | ||
| ocelot.h | ||
| ocelot_ana.h | ||
| ocelot_board.c | ||
| ocelot_dev.h | ||
| ocelot_io.c | ||
| ocelot_qs.h | ||
| ocelot_qsys.h | ||
| ocelot_regs.c | ||
| ocelot_rew.h | ||
| ocelot_sys.h | ||