summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaehee Yoo <ap420073@gmail.com>2019-10-21 14:47:58 -0400
committerDavid S. Miller <davem@davemloft.net>2019-10-24 17:53:49 -0400
commitf3b0a18bb6cb07a9abb75e21b1f08eeaefa78e81 (patch)
treeb5d636880dabed79068264b444e1cf785ad1cc45
parent0ce1822c2a08f6e05e22239bcb1778dcc916c7bc (diff)
net: remove unnecessary variables and callback
This patch removes variables and callback these are related to the nested device structure. devices that can be nested have their own nest_level variable that represents the depth of nested devices. In the previous patch, new {lower/upper}_level variables are added and they replace old private nest_level variable. So, this patch removes all 'nest_level' variables. In order to avoid lockdep warning, ->ndo_get_lock_subclass() was added to get lockdep subclass value, which is actually lower nested depth value. But now, they use the dynamic lockdep key to avoid lockdep warning instead of the subclass. So, this patch removes ->ndo_get_lock_subclass() callback. Signed-off-by: Taehee Yoo <ap420073@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/bonding/bond_alb.c2
-rw-r--r--drivers/net/bonding/bond_main.c15
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en_tc.c2
-rw-r--r--drivers/net/macsec.c9
-rw-r--r--drivers/net/macvlan.c7
-rw-r--r--include/linux/if_macvlan.h1
-rw-r--r--include/linux/if_vlan.h11
-rw-r--r--include/linux/netdevice.h12
-rw-r--r--include/net/bonding.h1
-rw-r--r--net/8021q/vlan.c1
-rw-r--r--net/8021q/vlan_dev.c6
-rw-r--r--net/core/dev.c19
-rw-r--r--net/core/dev_addr_lists.c12
-rw-r--r--net/smc/smc_core.c2
-rw-r--r--net/smc/smc_pnet.c2
15 files changed, 10 insertions, 92 deletions
diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c
index 8c79bad2a9a5..4f2e6910c623 100644
--- a/drivers/net/bonding/bond_alb.c
+++ b/drivers/net/bonding/bond_alb.c
@@ -952,7 +952,7 @@ static int alb_upper_dev_walk(struct net_device *upper, void *_data)
952 struct bond_vlan_tag *tags; 952 struct bond_vlan_tag *tags;
953 953
954 if (is_vlan_dev(upper) && 954 if (is_vlan_dev(upper) &&
955 bond->nest_level == vlan_get_encap_level(upper) - 1) { 955 bond->dev->lower_level == upper->lower_level - 1) {
956 if (upper->addr_assign_type == NET_ADDR_STOLEN) { 956 if (upper->addr_assign_type == NET_ADDR_STOLEN) {
957 alb_send_lp_vid(slave, mac_addr, 957 alb_send_lp_vid(slave, mac_addr,
958 vlan_dev_vlan_proto(upper), 958 vlan_dev_vlan_proto(upper),
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 6a6273590288..a48950b81434 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1733,8 +1733,6 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
1733 goto err_upper_unlink; 1733 goto err_upper_unlink;
1734 } 1734 }
1735 1735
1736 bond->nest_level = dev_get_nest_level(bond_dev) + 1;
1737
1738 /* If the mode uses primary, then the following is handled by 1736 /* If the mode uses primary, then the following is handled by
1739 * bond_change_active_slave(). 1737 * bond_change_active_slave().
1740 */ 1738 */
@@ -1957,9 +1955,6 @@ static int __bond_release_one(struct net_device *bond_dev,
1957 if (!bond_has_slaves(bond)) { 1955 if (!bond_has_slaves(bond)) {
1958 bond_set_carrier(bond); 1956 bond_set_carrier(bond);
1959 eth_hw_addr_random(bond_dev); 1957 eth_hw_addr_random(bond_dev);
1960 bond->nest_level = SINGLE_DEPTH_NESTING;
1961 } else {
1962 bond->nest_level = dev_get_nest_level(bond_dev) + 1;
1963 } 1958 }
1964 1959
1965 unblock_netpoll_tx(); 1960 unblock_netpoll_tx();
@@ -3444,13 +3439,6 @@ static void bond_fold_stats(struct rtnl_link_stats64 *_res,
3444 } 3439 }
3445} 3440}
3446 3441
3447static int bond_get_nest_level(struct net_device *bond_dev)
3448{
3449 struct bonding *bond = netdev_priv(bond_dev);
3450
3451 return bond->nest_level;
3452}
3453
3454static void bond_get_stats(struct net_device *bond_dev, 3442static void bond_get_stats(struct net_device *bond_dev,
3455 struct rtnl_link_stats64 *stats) 3443 struct rtnl_link_stats64 *stats)
3456{ 3444{
@@ -4270,7 +4258,6 @@ static const struct net_device_ops bond_netdev_ops = {
4270 .ndo_neigh_setup = bond_neigh_setup, 4258 .ndo_neigh_setup = bond_neigh_setup,
4271 .ndo_vlan_rx_add_vid = bond_vlan_rx_add_vid, 4259 .ndo_vlan_rx_add_vid = bond_vlan_rx_add_vid,
4272 .ndo_vlan_rx_kill_vid = bond_vlan_rx_kill_vid, 4260 .ndo_vlan_rx_kill_vid = bond_vlan_rx_kill_vid,
4273 .ndo_get_lock_subclass = bond_get_nest_level,
4274#ifdef CONFIG_NET_POLL_CONTROLLER 4261#ifdef CONFIG_NET_POLL_CONTROLLER
4275 .ndo_netpoll_setup = bond_netpoll_setup, 4262 .ndo_netpoll_setup = bond_netpoll_setup,
4276 .ndo_netpoll_cleanup = bond_netpoll_cleanup, 4263 .ndo_netpoll_cleanup = bond_netpoll_cleanup,
@@ -4769,8 +4756,6 @@ static int bond_init(struct net_device *bond_dev)
4769 if (!bond->wq) 4756 if (!bond->wq)
4770 return -ENOMEM; 4757 return -ENOMEM;
4771 4758
4772 bond->nest_level = SINGLE_DEPTH_NESTING;
4773
4774 spin_lock_init(&bond->mode_lock); 4759 spin_lock_init(&bond->mode_lock);
4775 spin_lock_init(&bond->stats_lock); 4760 spin_lock_init(&bond->stats_lock);
4776 lockdep_register_key(&bond->stats_lock_key); 4761 lockdep_register_key(&bond->stats_lock_key);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
index 3e78a727f3e6..c4c59d2e676e 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
@@ -3160,7 +3160,7 @@ static int add_vlan_pop_action(struct mlx5e_priv *priv,
3160 struct mlx5_esw_flow_attr *attr, 3160 struct mlx5_esw_flow_attr *attr,
3161 u32 *action) 3161 u32 *action)
3162{ 3162{
3163 int nest_level = vlan_get_encap_level(attr->parse_attr->filter_dev); 3163 int nest_level = attr->parse_attr->filter_dev->lower_level;
3164 struct flow_action_entry vlan_act = { 3164 struct flow_action_entry vlan_act = {
3165 .id = FLOW_ACTION_VLAN_POP, 3165 .id = FLOW_ACTION_VLAN_POP,
3166 }; 3166 };
diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c
index 9e97b66b26d3..afd8b2a08245 100644
--- a/drivers/net/macsec.c
+++ b/drivers/net/macsec.c
@@ -267,7 +267,6 @@ struct macsec_dev {
267 struct pcpu_secy_stats __percpu *stats; 267 struct pcpu_secy_stats __percpu *stats;
268 struct list_head secys; 268 struct list_head secys;
269 struct gro_cells gro_cells; 269 struct gro_cells gro_cells;
270 unsigned int nest_level;
271}; 270};
272 271
273/** 272/**
@@ -2957,11 +2956,6 @@ static int macsec_get_iflink(const struct net_device *dev)
2957 return macsec_priv(dev)->real_dev->ifindex; 2956 return macsec_priv(dev)->real_dev->ifindex;
2958} 2957}
2959 2958
2960static int macsec_get_nest_level(struct net_device *dev)
2961{
2962 return macsec_priv(dev)->nest_level;
2963}
2964
2965static const struct net_device_ops macsec_netdev_ops = { 2959static const struct net_device_ops macsec_netdev_ops = {
2966 .ndo_init = macsec_dev_init, 2960 .ndo_init = macsec_dev_init,
2967 .ndo_uninit = macsec_dev_uninit, 2961 .ndo_uninit = macsec_dev_uninit,
@@ -2975,7 +2969,6 @@ static const struct net_device_ops macsec_netdev_ops = {
2975 .ndo_start_xmit = macsec_start_xmit, 2969 .ndo_start_xmit = macsec_start_xmit,
2976 .ndo_get_stats64 = macsec_get_stats64, 2970 .ndo_get_stats64 = macsec_get_stats64,
2977 .ndo_get_iflink = macsec_get_iflink, 2971 .ndo_get_iflink = macsec_get_iflink,
2978 .ndo_get_lock_subclass = macsec_get_nest_level,
2979}; 2972};
2980 2973
2981static const struct device_type macsec_type = { 2974static const struct device_type macsec_type = {
@@ -3258,8 +3251,6 @@ static int macsec_newlink(struct net *net, struct net_device *dev,
3258 if (err < 0) 3251 if (err < 0)
3259 return err; 3252 return err;
3260 3253
3261 macsec->nest_level = dev_get_nest_level(real_dev) + 1;
3262
3263 err = netdev_upper_dev_link(real_dev, dev, extack); 3254 err = netdev_upper_dev_link(real_dev, dev, extack);
3264 if (err < 0) 3255 if (err < 0)
3265 goto unregister; 3256 goto unregister;
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index 0354e9be2ca5..34fc59bd1e20 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -867,11 +867,6 @@ static int macvlan_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
867#define MACVLAN_STATE_MASK \ 867#define MACVLAN_STATE_MASK \
868 ((1<<__LINK_STATE_NOCARRIER) | (1<<__LINK_STATE_DORMANT)) 868 ((1<<__LINK_STATE_NOCARRIER) | (1<<__LINK_STATE_DORMANT))
869 869
870static int macvlan_get_nest_level(struct net_device *dev)
871{
872 return ((struct macvlan_dev *)netdev_priv(dev))->nest_level;
873}
874
875static int macvlan_init(struct net_device *dev) 870static int macvlan_init(struct net_device *dev)
876{ 871{
877 struct macvlan_dev *vlan = netdev_priv(dev); 872 struct macvlan_dev *vlan = netdev_priv(dev);
@@ -1149,7 +1144,6 @@ static const struct net_device_ops macvlan_netdev_ops = {
1149 .ndo_fdb_add = macvlan_fdb_add, 1144 .ndo_fdb_add = macvlan_fdb_add,
1150 .ndo_fdb_del = macvlan_fdb_del, 1145 .ndo_fdb_del = macvlan_fdb_del,
1151 .ndo_fdb_dump = ndo_dflt_fdb_dump, 1146 .ndo_fdb_dump = ndo_dflt_fdb_dump,
1152 .ndo_get_lock_subclass = macvlan_get_nest_level,
1153#ifdef CONFIG_NET_POLL_CONTROLLER 1147#ifdef CONFIG_NET_POLL_CONTROLLER
1154 .ndo_poll_controller = macvlan_dev_poll_controller, 1148 .ndo_poll_controller = macvlan_dev_poll_controller,
1155 .ndo_netpoll_setup = macvlan_dev_netpoll_setup, 1149 .ndo_netpoll_setup = macvlan_dev_netpoll_setup,
@@ -1433,7 +1427,6 @@ int macvlan_common_newlink(struct net *src_net, struct net_device *dev,
1433 vlan->dev = dev; 1427 vlan->dev = dev;
1434 vlan->port = port; 1428 vlan->port = port;
1435 vlan->set_features = MACVLAN_FEATURES; 1429 vlan->set_features = MACVLAN_FEATURES;
1436 vlan->nest_level = dev_get_nest_level(lowerdev) + 1;
1437 1430
1438 vlan->mode = MACVLAN_MODE_VEPA; 1431 vlan->mode = MACVLAN_MODE_VEPA;
1439 if (data && data[IFLA_MACVLAN_MODE]) 1432 if (data && data[IFLA_MACVLAN_MODE])
diff --git a/include/linux/if_macvlan.h b/include/linux/if_macvlan.h
index 2e55e4cdbd8a..a367ead4bf4b 100644
--- a/include/linux/if_macvlan.h
+++ b/include/linux/if_macvlan.h
@@ -29,7 +29,6 @@ struct macvlan_dev {
29 netdev_features_t set_features; 29 netdev_features_t set_features;
30 enum macvlan_mode mode; 30 enum macvlan_mode mode;
31 u16 flags; 31 u16 flags;
32 int nest_level;
33 unsigned int macaddr_count; 32 unsigned int macaddr_count;
34#ifdef CONFIG_NET_POLL_CONTROLLER 33#ifdef CONFIG_NET_POLL_CONTROLLER
35 struct netpoll *netpoll; 34 struct netpoll *netpoll;
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h
index 244278d5c222..b05e855f1ddd 100644
--- a/include/linux/if_vlan.h
+++ b/include/linux/if_vlan.h
@@ -182,7 +182,6 @@ struct vlan_dev_priv {
182#ifdef CONFIG_NET_POLL_CONTROLLER 182#ifdef CONFIG_NET_POLL_CONTROLLER
183 struct netpoll *netpoll; 183 struct netpoll *netpoll;
184#endif 184#endif
185 unsigned int nest_level;
186}; 185};
187 186
188static inline struct vlan_dev_priv *vlan_dev_priv(const struct net_device *dev) 187static inline struct vlan_dev_priv *vlan_dev_priv(const struct net_device *dev)
@@ -221,11 +220,6 @@ extern void vlan_vids_del_by_dev(struct net_device *dev,
221 220
222extern bool vlan_uses_dev(const struct net_device *dev); 221extern bool vlan_uses_dev(const struct net_device *dev);
223 222
224static inline int vlan_get_encap_level(struct net_device *dev)
225{
226 BUG_ON(!is_vlan_dev(dev));
227 return vlan_dev_priv(dev)->nest_level;
228}
229#else 223#else
230static inline struct net_device * 224static inline struct net_device *
231__vlan_find_dev_deep_rcu(struct net_device *real_dev, 225__vlan_find_dev_deep_rcu(struct net_device *real_dev,
@@ -295,11 +289,6 @@ static inline bool vlan_uses_dev(const struct net_device *dev)
295{ 289{
296 return false; 290 return false;
297} 291}
298static inline int vlan_get_encap_level(struct net_device *dev)
299{
300 BUG();
301 return 0;
302}
303#endif 292#endif
304 293
305/** 294/**
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 6c6490e15cd4..c20f190b4c18 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1422,7 +1422,6 @@ struct net_device_ops {
1422 void (*ndo_dfwd_del_station)(struct net_device *pdev, 1422 void (*ndo_dfwd_del_station)(struct net_device *pdev,
1423 void *priv); 1423 void *priv);
1424 1424
1425 int (*ndo_get_lock_subclass)(struct net_device *dev);
1426 int (*ndo_set_tx_maxrate)(struct net_device *dev, 1425 int (*ndo_set_tx_maxrate)(struct net_device *dev,
1427 int queue_index, 1426 int queue_index,
1428 u32 maxrate); 1427 u32 maxrate);
@@ -4051,16 +4050,6 @@ static inline void netif_addr_lock(struct net_device *dev)
4051 spin_lock(&dev->addr_list_lock); 4050 spin_lock(&dev->addr_list_lock);
4052} 4051}
4053 4052
4054static inline void netif_addr_lock_nested(struct net_device *dev)
4055{
4056 int subclass = SINGLE_DEPTH_NESTING;
4057
4058 if (dev->netdev_ops->ndo_get_lock_subclass)
4059 subclass = dev->netdev_ops->ndo_get_lock_subclass(dev);
4060
4061 spin_lock_nested(&dev->addr_list_lock, subclass);
4062}
4063
4064static inline void netif_addr_lock_bh(struct net_device *dev) 4053static inline void netif_addr_lock_bh(struct net_device *dev)
4065{ 4054{
4066 spin_lock_bh(&dev->addr_list_lock); 4055 spin_lock_bh(&dev->addr_list_lock);
@@ -4345,7 +4334,6 @@ void netdev_lower_state_changed(struct net_device *lower_dev,
4345extern u8 netdev_rss_key[NETDEV_RSS_KEY_LEN] __read_mostly; 4334extern u8 netdev_rss_key[NETDEV_RSS_KEY_LEN] __read_mostly;
4346void netdev_rss_key_fill(void *buffer, size_t len); 4335void netdev_rss_key_fill(void *buffer, size_t len);
4347 4336
4348int dev_get_nest_level(struct net_device *dev);
4349int skb_checksum_help(struct sk_buff *skb); 4337int skb_checksum_help(struct sk_buff *skb);
4350int skb_crc32c_csum_help(struct sk_buff *skb); 4338int skb_crc32c_csum_help(struct sk_buff *skb);
4351int skb_csum_hwoffload_help(struct sk_buff *skb, 4339int skb_csum_hwoffload_help(struct sk_buff *skb,
diff --git a/include/net/bonding.h b/include/net/bonding.h
index 334909feb2bb..1afc125014da 100644
--- a/include/net/bonding.h
+++ b/include/net/bonding.h
@@ -203,7 +203,6 @@ struct bonding {
203 struct slave __rcu *primary_slave; 203 struct slave __rcu *primary_slave;
204 struct bond_up_slave __rcu *slave_arr; /* Array of usable slaves */ 204 struct bond_up_slave __rcu *slave_arr; /* Array of usable slaves */
205 bool force_primary; 205 bool force_primary;
206 u32 nest_level;
207 s32 slave_cnt; /* never change this value outside the attach/detach wrappers */ 206 s32 slave_cnt; /* never change this value outside the attach/detach wrappers */
208 int (*recv_probe)(const struct sk_buff *, struct bonding *, 207 int (*recv_probe)(const struct sk_buff *, struct bonding *,
209 struct slave *); 208 struct slave *);
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index 54728d2eda18..d4bcfd8f95bf 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -172,7 +172,6 @@ int register_vlan_dev(struct net_device *dev, struct netlink_ext_ack *extack)
172 if (err < 0) 172 if (err < 0)
173 goto out_uninit_mvrp; 173 goto out_uninit_mvrp;
174 174
175 vlan->nest_level = dev_get_nest_level(real_dev) + 1;
176 err = register_netdevice(dev); 175 err = register_netdevice(dev);
177 if (err < 0) 176 if (err < 0)
178 goto out_uninit_mvrp; 177 goto out_uninit_mvrp;
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 6e6f26bf6e73..e5bff5cc6f97 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -489,11 +489,6 @@ static void vlan_dev_set_rx_mode(struct net_device *vlan_dev)
489 dev_uc_sync(vlan_dev_priv(vlan_dev)->real_dev, vlan_dev); 489 dev_uc_sync(vlan_dev_priv(vlan_dev)->real_dev, vlan_dev);
490} 490}
491 491
492static int vlan_dev_get_lock_subclass(struct net_device *dev)
493{
494 return vlan_dev_priv(dev)->nest_level;
495}
496
497static const struct header_ops vlan_header_ops = { 492static const struct header_ops vlan_header_ops = {
498 .create = vlan_dev_hard_header, 493 .create = vlan_dev_hard_header,
499 .parse = eth_header_parse, 494 .parse = eth_header_parse,
@@ -785,7 +780,6 @@ static const struct net_device_ops vlan_netdev_ops = {
785 .ndo_netpoll_cleanup = vlan_dev_netpoll_cleanup, 780 .ndo_netpoll_cleanup = vlan_dev_netpoll_cleanup,
786#endif 781#endif
787 .ndo_fix_features = vlan_dev_fix_features, 782 .ndo_fix_features = vlan_dev_fix_features,
788 .ndo_get_lock_subclass = vlan_dev_get_lock_subclass,
789 .ndo_get_iflink = vlan_dev_get_iflink, 783 .ndo_get_iflink = vlan_dev_get_iflink,
790}; 784};
791 785
diff --git a/net/core/dev.c b/net/core/dev.c
index 092c094038b6..1482e2ef2d25 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -7615,25 +7615,6 @@ void *netdev_lower_dev_get_private(struct net_device *dev,
7615EXPORT_SYMBOL(netdev_lower_dev_get_private); 7615EXPORT_SYMBOL(netdev_lower_dev_get_private);
7616 7616
7617 7617
7618int dev_get_nest_level(struct net_device *dev)
7619{
7620 struct net_device *lower = NULL;
7621 struct list_head *iter;
7622 int max_nest = -1;
7623 int nest;
7624
7625 ASSERT_RTNL();
7626
7627 netdev_for_each_lower_dev(dev, lower, iter) {
7628 nest = dev_get_nest_level(lower);
7629 if (max_nest < nest)
7630 max_nest = nest;
7631 }
7632
7633 return max_nest + 1;
7634}
7635EXPORT_SYMBOL(dev_get_nest_level);
7636
7637/** 7618/**
7638 * netdev_lower_change - Dispatch event about lower device state change 7619 * netdev_lower_change - Dispatch event about lower device state change
7639 * @lower_dev: device 7620 * @lower_dev: device
diff --git a/net/core/dev_addr_lists.c b/net/core/dev_addr_lists.c
index 6393ba930097..2f949b5a1eb9 100644
--- a/net/core/dev_addr_lists.c
+++ b/net/core/dev_addr_lists.c
@@ -637,7 +637,7 @@ int dev_uc_sync(struct net_device *to, struct net_device *from)
637 if (to->addr_len != from->addr_len) 637 if (to->addr_len != from->addr_len)
638 return -EINVAL; 638 return -EINVAL;
639 639
640 netif_addr_lock_nested(to); 640 netif_addr_lock(to);
641 err = __hw_addr_sync(&to->uc, &from->uc, to->addr_len); 641 err = __hw_addr_sync(&to->uc, &from->uc, to->addr_len);
642 if (!err) 642 if (!err)
643 __dev_set_rx_mode(to); 643 __dev_set_rx_mode(to);
@@ -667,7 +667,7 @@ int dev_uc_sync_multiple(struct net_device *to, struct net_device *from)
667 if (to->addr_len != from->addr_len) 667 if (to->addr_len != from->addr_len)
668 return -EINVAL; 668 return -EINVAL;
669 669
670 netif_addr_lock_nested(to); 670 netif_addr_lock(to);
671 err = __hw_addr_sync_multiple(&to->uc, &from->uc, to->addr_len); 671 err = __hw_addr_sync_multiple(&to->uc, &from->uc, to->addr_len);
672 if (!err) 672 if (!err)
673 __dev_set_rx_mode(to); 673 __dev_set_rx_mode(to);
@@ -691,7 +691,7 @@ void dev_uc_unsync(struct net_device *to, struct net_device *from)
691 return; 691 return;
692 692
693 netif_addr_lock_bh(from); 693 netif_addr_lock_bh(from);
694 netif_addr_lock_nested(to); 694 netif_addr_lock(to);
695 __hw_addr_unsync(&to->uc, &from->uc, to->addr_len); 695 __hw_addr_unsync(&to->uc, &from->uc, to->addr_len);
696 __dev_set_rx_mode(to); 696 __dev_set_rx_mode(to);
697 netif_addr_unlock(to); 697 netif_addr_unlock(to);
@@ -858,7 +858,7 @@ int dev_mc_sync(struct net_device *to, struct net_device *from)
858 if (to->addr_len != from->addr_len) 858 if (to->addr_len != from->addr_len)
859 return -EINVAL; 859 return -EINVAL;
860 860
861 netif_addr_lock_nested(to); 861 netif_addr_lock(to);
862 err = __hw_addr_sync(&to->mc, &from->mc, to->addr_len); 862 err = __hw_addr_sync(&to->mc, &from->mc, to->addr_len);
863 if (!err) 863 if (!err)
864 __dev_set_rx_mode(to); 864 __dev_set_rx_mode(to);
@@ -888,7 +888,7 @@ int dev_mc_sync_multiple(struct net_device *to, struct net_device *from)
888 if (to->addr_len != from->addr_len) 888 if (to->addr_len != from->addr_len)
889 return -EINVAL; 889 return -EINVAL;
890 890
891 netif_addr_lock_nested(to); 891 netif_addr_lock(to);
892 err = __hw_addr_sync_multiple(&to->mc, &from->mc, to->addr_len); 892 err = __hw_addr_sync_multiple(&to->mc, &from->mc, to->addr_len);
893 if (!err) 893 if (!err)
894 __dev_set_rx_mode(to); 894 __dev_set_rx_mode(to);
@@ -912,7 +912,7 @@ void dev_mc_unsync(struct net_device *to, struct net_device *from)
912 return; 912 return;
913 913
914 netif_addr_lock_bh(from); 914 netif_addr_lock_bh(from);
915 netif_addr_lock_nested(to); 915 netif_addr_lock(to);
916 __hw_addr_unsync(&to->mc, &from->mc, to->addr_len); 916 __hw_addr_unsync(&to->mc, &from->mc, to->addr_len);
917 __dev_set_rx_mode(to); 917 __dev_set_rx_mode(to);
918 netif_addr_unlock(to); 918 netif_addr_unlock(to);
diff --git a/net/smc/smc_core.c b/net/smc/smc_core.c
index 88556f0251ab..2ba97ff325a5 100644
--- a/net/smc/smc_core.c
+++ b/net/smc/smc_core.c
@@ -561,7 +561,7 @@ int smc_vlan_by_tcpsk(struct socket *clcsock, struct smc_init_info *ini)
561 } 561 }
562 562
563 rtnl_lock(); 563 rtnl_lock();
564 nest_lvl = dev_get_nest_level(ndev); 564 nest_lvl = ndev->lower_level;
565 for (i = 0; i < nest_lvl; i++) { 565 for (i = 0; i < nest_lvl; i++) {
566 struct list_head *lower = &ndev->adj_list.lower; 566 struct list_head *lower = &ndev->adj_list.lower;
567 567
diff --git a/net/smc/smc_pnet.c b/net/smc/smc_pnet.c
index bab2da8cf17a..2920b006f65c 100644
--- a/net/smc/smc_pnet.c
+++ b/net/smc/smc_pnet.c
@@ -718,7 +718,7 @@ static struct net_device *pnet_find_base_ndev(struct net_device *ndev)
718 int i, nest_lvl; 718 int i, nest_lvl;
719 719
720 rtnl_lock(); 720 rtnl_lock();
721 nest_lvl = dev_get_nest_level(ndev); 721 nest_lvl = ndev->lower_level;
722 for (i = 0; i < nest_lvl; i++) { 722 for (i = 0; i < nest_lvl; i++) {
723 struct list_head *lower = &ndev->adj_list.lower; 723 struct list_head *lower = &ndev->adj_list.lower;
724 724