|
@@ -65,6 +65,14 @@ static DEFINE_SPINLOCK(nr_list_lock);
|
|
|
|
|
|
static const struct proto_ops nr_proto_ops;
|
|
static const struct proto_ops nr_proto_ops;
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * NETROM network devices are virtual network devices encapsulating NETROM
|
|
|
|
+ * frames into AX.25 which will be sent through an AX.25 device, so form a
|
|
|
|
+ * special "super class" of normal net devices; split their locks off into a
|
|
|
|
+ * separate class since they always nest.
|
|
|
|
+ */
|
|
|
|
+static struct lock_class_key nr_netdev_xmit_lock_key;
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Socket removal during an interrupt is now safe.
|
|
* Socket removal during an interrupt is now safe.
|
|
*/
|
|
*/
|
|
@@ -1405,6 +1413,7 @@ static int __init nr_proto_init(void)
|
|
free_netdev(dev);
|
|
free_netdev(dev);
|
|
goto fail;
|
|
goto fail;
|
|
}
|
|
}
|
|
|
|
+ lockdep_set_class(&dev->_xmit_lock, &nr_netdev_xmit_lock_key);
|
|
dev_nr[i] = dev;
|
|
dev_nr[i] = dev;
|
|
}
|
|
}
|
|
|
|
|