summaryrefslogtreecommitdiffstats
path: root/net/l3mdev
diff options
context:
space:
mode:
Diffstat (limited to 'net/l3mdev')
-rw-r--r--net/l3mdev/l3mdev.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/net/l3mdev/l3mdev.c b/net/l3mdev/l3mdev.c
index 8e5ead366e7f..e925037fa0df 100644
--- a/net/l3mdev/l3mdev.c
+++ b/net/l3mdev/l3mdev.c
@@ -17,7 +17,7 @@
17 * @dev: targeted interface 17 * @dev: targeted interface
18 */ 18 */
19 19
20int l3mdev_master_ifindex_rcu(struct net_device *dev) 20int l3mdev_master_ifindex_rcu(const struct net_device *dev)
21{ 21{
22 int ifindex = 0; 22 int ifindex = 0;
23 23
@@ -28,8 +28,15 @@ int l3mdev_master_ifindex_rcu(struct net_device *dev)
28 ifindex = dev->ifindex; 28 ifindex = dev->ifindex;
29 } else if (netif_is_l3_slave(dev)) { 29 } else if (netif_is_l3_slave(dev)) {
30 struct net_device *master; 30 struct net_device *master;
31 struct net_device *_dev = (struct net_device *)dev;
31 32
32 master = netdev_master_upper_dev_get_rcu(dev); 33 /* netdev_master_upper_dev_get_rcu calls
34 * list_first_or_null_rcu to walk the upper dev list.
35 * list_first_or_null_rcu does not handle a const arg. We aren't
36 * making changes, just want the master device from that list so
37 * typecast to remove the const
38 */
39 master = netdev_master_upper_dev_get_rcu(_dev);
33 if (master) 40 if (master)
34 ifindex = master->ifindex; 41 ifindex = master->ifindex;
35 } 42 }