diff options
Diffstat (limited to 'drivers/net/hamradio')
-rw-r--r-- | drivers/net/hamradio/bpqether.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c index 0641f54fc638..889f338132fa 100644 --- a/drivers/net/hamradio/bpqether.c +++ b/drivers/net/hamradio/bpqether.c | |||
@@ -122,6 +122,12 @@ struct bpqdev { | |||
122 | 122 | ||
123 | static LIST_HEAD(bpq_devices); | 123 | static LIST_HEAD(bpq_devices); |
124 | 124 | ||
125 | /* | ||
126 | * bpqether network devices are paired with ethernet devices below them, so | ||
127 | * form a special "super class" of normal ethernet devices; split their locks | ||
128 | * off into a separate class since they always nest. | ||
129 | */ | ||
130 | static struct lock_class_key bpq_netdev_xmit_lock_key; | ||
125 | 131 | ||
126 | /* ------------------------------------------------------------------------ */ | 132 | /* ------------------------------------------------------------------------ */ |
127 | 133 | ||
@@ -528,6 +534,7 @@ static int bpq_new_device(struct net_device *edev) | |||
528 | err = register_netdevice(ndev); | 534 | err = register_netdevice(ndev); |
529 | if (err) | 535 | if (err) |
530 | goto error; | 536 | goto error; |
537 | lockdep_set_class(&ndev->_xmit_lock, &bpq_netdev_xmit_lock_key); | ||
531 | 538 | ||
532 | /* List protected by RTNL */ | 539 | /* List protected by RTNL */ |
533 | list_add_rcu(&bpq->bpq_list, &bpq_devices); | 540 | list_add_rcu(&bpq->bpq_list, &bpq_devices); |