Commit b81693d9 authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller

net: remove ndo_set_multicast_list callback

Remove no longer used operation.
Signed-off-by: default avatarJiri Pirko <jpirko@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent afc4b13d
...@@ -73,7 +73,7 @@ dev->hard_start_xmit: ...@@ -73,7 +73,7 @@ dev->hard_start_xmit:
has to lock by itself when needed. It is recommended to use a try lock has to lock by itself when needed. It is recommended to use a try lock
for this and return NETDEV_TX_LOCKED when the spin lock fails. for this and return NETDEV_TX_LOCKED when the spin lock fails.
The locking there should also properly protect against The locking there should also properly protect against
set_multicast_list. Note that the use of NETIF_F_LLTX is deprecated. set_rx_mode. Note that the use of NETIF_F_LLTX is deprecated.
Don't use it for new drivers. Don't use it for new drivers.
Context: Process with BHs disabled or BH (timer), Context: Process with BHs disabled or BH (timer),
...@@ -92,7 +92,7 @@ dev->tx_timeout: ...@@ -92,7 +92,7 @@ dev->tx_timeout:
Context: BHs disabled Context: BHs disabled
Notes: netif_queue_stopped() is guaranteed true Notes: netif_queue_stopped() is guaranteed true
dev->set_multicast_list: dev->set_rx_mode:
Synchronization: netif_tx_lock spinlock. Synchronization: netif_tx_lock spinlock.
Context: BHs disabled Context: BHs disabled
......
...@@ -726,9 +726,6 @@ struct netdev_tc_txq { ...@@ -726,9 +726,6 @@ struct netdev_tc_txq {
* If driver handles unicast address filtering, it should set * If driver handles unicast address filtering, it should set
* IFF_UNICAST_FLT to its priv_flags. * IFF_UNICAST_FLT to its priv_flags.
* *
* void (*ndo_set_multicast_list)(struct net_device *dev);
* This function is called when the multicast address list changes.
*
* int (*ndo_set_mac_address)(struct net_device *dev, void *addr); * int (*ndo_set_mac_address)(struct net_device *dev, void *addr);
* This function is called when the Media Access Control address * This function is called when the Media Access Control address
* needs to be changed. If this interface is not defined, the * needs to be changed. If this interface is not defined, the
...@@ -870,7 +867,6 @@ struct net_device_ops { ...@@ -870,7 +867,6 @@ struct net_device_ops {
void (*ndo_change_rx_flags)(struct net_device *dev, void (*ndo_change_rx_flags)(struct net_device *dev,
int flags); int flags);
void (*ndo_set_rx_mode)(struct net_device *dev); void (*ndo_set_rx_mode)(struct net_device *dev);
void (*ndo_set_multicast_list)(struct net_device *dev);
int (*ndo_set_mac_address)(struct net_device *dev, int (*ndo_set_mac_address)(struct net_device *dev,
void *addr); void *addr);
int (*ndo_validate_addr)(struct net_device *dev); int (*ndo_validate_addr)(struct net_device *dev);
......
...@@ -4537,8 +4537,6 @@ void __dev_set_rx_mode(struct net_device *dev) ...@@ -4537,8 +4537,6 @@ void __dev_set_rx_mode(struct net_device *dev)
if (ops->ndo_set_rx_mode) if (ops->ndo_set_rx_mode)
ops->ndo_set_rx_mode(dev); ops->ndo_set_rx_mode(dev);
else if (ops->ndo_set_multicast_list)
ops->ndo_set_multicast_list(dev);
} }
void dev_set_rx_mode(struct net_device *dev) void dev_set_rx_mode(struct net_device *dev)
...@@ -4888,7 +4886,7 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd) ...@@ -4888,7 +4886,7 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd)
return -EOPNOTSUPP; return -EOPNOTSUPP;
case SIOCADDMULTI: case SIOCADDMULTI:
if ((!ops->ndo_set_multicast_list && !ops->ndo_set_rx_mode) || if (!ops->ndo_set_rx_mode ||
ifr->ifr_hwaddr.sa_family != AF_UNSPEC) ifr->ifr_hwaddr.sa_family != AF_UNSPEC)
return -EINVAL; return -EINVAL;
if (!netif_device_present(dev)) if (!netif_device_present(dev))
...@@ -4896,7 +4894,7 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd) ...@@ -4896,7 +4894,7 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd)
return dev_mc_add_global(dev, ifr->ifr_hwaddr.sa_data); return dev_mc_add_global(dev, ifr->ifr_hwaddr.sa_data);
case SIOCDELMULTI: case SIOCDELMULTI:
if ((!ops->ndo_set_multicast_list && !ops->ndo_set_rx_mode) || if (!ops->ndo_set_rx_mode ||
ifr->ifr_hwaddr.sa_family != AF_UNSPEC) ifr->ifr_hwaddr.sa_family != AF_UNSPEC)
return -EINVAL; return -EINVAL;
if (!netif_device_present(dev)) if (!netif_device_present(dev))
......
...@@ -591,8 +591,8 @@ EXPORT_SYMBOL(dev_mc_del_global); ...@@ -591,8 +591,8 @@ EXPORT_SYMBOL(dev_mc_del_global);
* addresses that have no users left. The source device must be * addresses that have no users left. The source device must be
* locked by netif_tx_lock_bh. * locked by netif_tx_lock_bh.
* *
* This function is intended to be called from the dev->set_multicast_list * This function is intended to be called from the ndo_set_rx_mode
* or dev->set_rx_mode function of layered software devices. * function of layered software devices.
*/ */
int dev_mc_sync(struct net_device *to, struct net_device *from) int dev_mc_sync(struct net_device *to, struct net_device *from)
{ {
......
...@@ -1009,7 +1009,7 @@ static void ip_mc_filter_add(struct in_device *in_dev, __be32 addr) ...@@ -1009,7 +1009,7 @@ static void ip_mc_filter_add(struct in_device *in_dev, __be32 addr)
/* Checking for IFF_MULTICAST here is WRONG-WRONG-WRONG. /* Checking for IFF_MULTICAST here is WRONG-WRONG-WRONG.
We will get multicast token leakage, when IFF_MULTICAST We will get multicast token leakage, when IFF_MULTICAST
is changed. This check should be done in dev->set_multicast_list is changed. This check should be done in ndo_set_rx_mode
routine. Something sort of: routine. Something sort of:
if (dev->mc_list && dev->flags&IFF_MULTICAST) { do it; } if (dev->mc_list && dev->flags&IFF_MULTICAST) { do it; }
--ANK --ANK
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment