diff options
-rw-r--r-- | net/netrom/af_netrom.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c index 672d5f803f8f..1d50f801f181 100644 --- a/net/netrom/af_netrom.c +++ b/net/netrom/af_netrom.c | |||
@@ -66,6 +66,14 @@ static DEFINE_SPINLOCK(nr_list_lock); | |||
66 | static const struct proto_ops nr_proto_ops; | 66 | static const struct proto_ops nr_proto_ops; |
67 | 67 | ||
68 | /* | 68 | /* |
69 | * NETROM network devices are virtual network devices encapsulating NETROM | ||
70 | * frames into AX.25 which will be sent through an AX.25 device, so form a | ||
71 | * special "super class" of normal net devices; split their locks off into a | ||
72 | * separate class since they always nest. | ||
73 | */ | ||
74 | static struct lock_class_key nr_netdev_xmit_lock_key; | ||
75 | |||
76 | /* | ||
69 | * Socket removal during an interrupt is now safe. | 77 | * Socket removal during an interrupt is now safe. |
70 | */ | 78 | */ |
71 | static void nr_remove_socket(struct sock *sk) | 79 | static void nr_remove_socket(struct sock *sk) |
@@ -1405,6 +1413,7 @@ static int __init nr_proto_init(void) | |||
1405 | free_netdev(dev); | 1413 | free_netdev(dev); |
1406 | goto fail; | 1414 | goto fail; |
1407 | } | 1415 | } |
1416 | lockdep_set_class(&dev->_xmit_lock, &nr_netdev_xmit_lock_key); | ||
1408 | dev_nr[i] = dev; | 1417 | dev_nr[i] = dev; |
1409 | } | 1418 | } |
1410 | 1419 | ||