|
@@ -158,6 +158,8 @@ static void dsa_master_ethtool_teardown(struct net_device *dev)
|
|
|
cpu_dp->orig_ethtool_ops = NULL;
|
|
cpu_dp->orig_ethtool_ops = NULL;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+static struct lock_class_key dsa_master_addr_list_lock_key;
|
|
|
|
|
+
|
|
|
int dsa_master_setup(struct net_device *dev, struct dsa_port *cpu_dp)
|
|
int dsa_master_setup(struct net_device *dev, struct dsa_port *cpu_dp)
|
|
|
{
|
|
{
|
|
|
/* If we use a tagging format that doesn't have an ethertype
|
|
/* If we use a tagging format that doesn't have an ethertype
|
|
@@ -167,6 +169,8 @@ int dsa_master_setup(struct net_device *dev, struct dsa_port *cpu_dp)
|
|
|
wmb();
|
|
wmb();
|
|
|
|
|
|
|
|
dev->dsa_ptr = cpu_dp;
|
|
dev->dsa_ptr = cpu_dp;
|
|
|
|
|
+ lockdep_set_class(&dev->addr_list_lock,
|
|
|
|
|
+ &dsa_master_addr_list_lock_key);
|
|
|
|
|
|
|
|
return dsa_master_ethtool_setup(dev);
|
|
return dsa_master_ethtool_setup(dev);
|
|
|
}
|
|
}
|