net: remove dead code for add/del multiple

These function to manipulate multiple addresses are not used anywhere
in current net-next tree. Some out of tree code maybe using these but
too bad; they should submit their code upstream..

Also, make __hw_addr_flush local since only used by dev_addr_lists.c

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
stephen hemminger 2013-12-13 12:35:56 -08:00 коммит произвёл David S. Miller
Родитель 6ea09d8a09
Коммит 477bb93320
2 изменённых файлов: 1 добавлений и 107 удалений

Просмотреть файл

@ -2810,17 +2810,10 @@ int register_netdev(struct net_device *dev);
void unregister_netdev(struct net_device *dev); void unregister_netdev(struct net_device *dev);
/* General hardware address lists handling functions */ /* General hardware address lists handling functions */
int __hw_addr_add_multiple(struct netdev_hw_addr_list *to_list,
struct netdev_hw_addr_list *from_list,
int addr_len, unsigned char addr_type);
void __hw_addr_del_multiple(struct netdev_hw_addr_list *to_list,
struct netdev_hw_addr_list *from_list,
int addr_len, unsigned char addr_type);
int __hw_addr_sync(struct netdev_hw_addr_list *to_list, int __hw_addr_sync(struct netdev_hw_addr_list *to_list,
struct netdev_hw_addr_list *from_list, int addr_len); struct netdev_hw_addr_list *from_list, int addr_len);
void __hw_addr_unsync(struct netdev_hw_addr_list *to_list, void __hw_addr_unsync(struct netdev_hw_addr_list *to_list,
struct netdev_hw_addr_list *from_list, int addr_len); struct netdev_hw_addr_list *from_list, int addr_len);
void __hw_addr_flush(struct netdev_hw_addr_list *list);
void __hw_addr_init(struct netdev_hw_addr_list *list); void __hw_addr_init(struct netdev_hw_addr_list *list);
/* Functions used for device addresses handling */ /* Functions used for device addresses handling */
@ -2828,10 +2821,6 @@ int dev_addr_add(struct net_device *dev, const unsigned char *addr,
unsigned char addr_type); unsigned char addr_type);
int dev_addr_del(struct net_device *dev, const unsigned char *addr, int dev_addr_del(struct net_device *dev, const unsigned char *addr,
unsigned char addr_type); unsigned char addr_type);
int dev_addr_add_multiple(struct net_device *to_dev,
struct net_device *from_dev, unsigned char addr_type);
int dev_addr_del_multiple(struct net_device *to_dev,
struct net_device *from_dev, unsigned char addr_type);
void dev_addr_flush(struct net_device *dev); void dev_addr_flush(struct net_device *dev);
int dev_addr_init(struct net_device *dev); int dev_addr_init(struct net_device *dev);

Просмотреть файл

@ -186,47 +186,6 @@ static int __hw_addr_sync_multiple(struct netdev_hw_addr_list *to_list,
return err; return err;
} }
int __hw_addr_add_multiple(struct netdev_hw_addr_list *to_list,
struct netdev_hw_addr_list *from_list,
int addr_len, unsigned char addr_type)
{
int err;
struct netdev_hw_addr *ha, *ha2;
unsigned char type;
list_for_each_entry(ha, &from_list->list, list) {
type = addr_type ? addr_type : ha->type;
err = __hw_addr_add(to_list, ha->addr, addr_len, type);
if (err)
goto unroll;
}
return 0;
unroll:
list_for_each_entry(ha2, &from_list->list, list) {
if (ha2 == ha)
break;
type = addr_type ? addr_type : ha2->type;
__hw_addr_del(to_list, ha2->addr, addr_len, type);
}
return err;
}
EXPORT_SYMBOL(__hw_addr_add_multiple);
void __hw_addr_del_multiple(struct netdev_hw_addr_list *to_list,
struct netdev_hw_addr_list *from_list,
int addr_len, unsigned char addr_type)
{
struct netdev_hw_addr *ha;
unsigned char type;
list_for_each_entry(ha, &from_list->list, list) {
type = addr_type ? addr_type : ha->type;
__hw_addr_del(to_list, ha->addr, addr_len, type);
}
}
EXPORT_SYMBOL(__hw_addr_del_multiple);
/* This function only works where there is a strict 1-1 relationship /* This function only works where there is a strict 1-1 relationship
* between source and destionation of they synch. If you ever need to * between source and destionation of they synch. If you ever need to
* sync addresses to more then 1 destination, you need to use * sync addresses to more then 1 destination, you need to use
@ -264,7 +223,7 @@ void __hw_addr_unsync(struct netdev_hw_addr_list *to_list,
} }
EXPORT_SYMBOL(__hw_addr_unsync); EXPORT_SYMBOL(__hw_addr_unsync);
void __hw_addr_flush(struct netdev_hw_addr_list *list) static void __hw_addr_flush(struct netdev_hw_addr_list *list)
{ {
struct netdev_hw_addr *ha, *tmp; struct netdev_hw_addr *ha, *tmp;
@ -274,7 +233,6 @@ void __hw_addr_flush(struct netdev_hw_addr_list *list)
} }
list->count = 0; list->count = 0;
} }
EXPORT_SYMBOL(__hw_addr_flush);
void __hw_addr_init(struct netdev_hw_addr_list *list) void __hw_addr_init(struct netdev_hw_addr_list *list)
{ {
@ -400,59 +358,6 @@ int dev_addr_del(struct net_device *dev, const unsigned char *addr,
} }
EXPORT_SYMBOL(dev_addr_del); EXPORT_SYMBOL(dev_addr_del);
/**
* dev_addr_add_multiple - Add device addresses from another device
* @to_dev: device to which addresses will be added
* @from_dev: device from which addresses will be added
* @addr_type: address type - 0 means type will be used from from_dev
*
* Add device addresses of the one device to another.
**
* The caller must hold the rtnl_mutex.
*/
int dev_addr_add_multiple(struct net_device *to_dev,
struct net_device *from_dev,
unsigned char addr_type)
{
int err;
ASSERT_RTNL();
if (from_dev->addr_len != to_dev->addr_len)
return -EINVAL;
err = __hw_addr_add_multiple(&to_dev->dev_addrs, &from_dev->dev_addrs,
to_dev->addr_len, addr_type);
if (!err)
call_netdevice_notifiers(NETDEV_CHANGEADDR, to_dev);
return err;
}
EXPORT_SYMBOL(dev_addr_add_multiple);
/**
* dev_addr_del_multiple - Delete device addresses by another device
* @to_dev: device where the addresses will be deleted
* @from_dev: device supplying the addresses to be deleted
* @addr_type: address type - 0 means type will be used from from_dev
*
* Deletes addresses in to device by the list of addresses in from device.
*
* The caller must hold the rtnl_mutex.
*/
int dev_addr_del_multiple(struct net_device *to_dev,
struct net_device *from_dev,
unsigned char addr_type)
{
ASSERT_RTNL();
if (from_dev->addr_len != to_dev->addr_len)
return -EINVAL;
__hw_addr_del_multiple(&to_dev->dev_addrs, &from_dev->dev_addrs,
to_dev->addr_len, addr_type);
call_netdevice_notifiers(NETDEV_CHANGEADDR, to_dev);
return 0;
}
EXPORT_SYMBOL(dev_addr_del_multiple);
/* /*
* Unicast list handling functions * Unicast list handling functions
*/ */