This is an updated version of the secondary unicast address patches. I've introduced a common structure and helpers for both unicast and multicast addresses to make it easier for virtual software devices that want to synchronize addresses to a lower device to reuse code. Additionally I fixed a deadlock when putting the device into promiscous mode, renamed dev->set_address_list to dev->set_rx_mode and cleaned the code up a bit.
One remaining question is how to handle the case that too many unicast addresses are configured and the device is put into promiscous mode or unicast filtering is disabled by the driver. In that case we're not getting the message that is normally printed by dev_set_promiscous and no audit log. Not sure if that can already happen when configuring multicast, I thought it was worth mentioning. drivers/net/e1000/e1000_main.c | 47 ++++++--- include/linux/netdevice.h | 40 +++++--- net/core/dev.c | 213 ++++++++++++++++++++++++++++++++++++--- net/core/dev_mcast.c | 128 +++--------------------- net/decnet/dn_dev.c | 3 - 5 files changed, 269 insertions(+), 162 deletions(-) Patrick McHardy (5): [NET]: dev_mcast: unexport dev_mc_upload [NET]: dev: introduce generic net_device address lists [NET]: dev_mcast: switch to generic net_device address lists [NET]: dev: secondary unicast address support [E1000]: Secondary unicast address support - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html