spin_unlock_bh(&dev->queue_lock);
if (found) {
- atomic_dec(&dev->refcnt);
cn_queue_free_callback(cbq);
+ atomic_dec(&dev->refcnt);
return -EINVAL;
}
- cbq->nls = dev->nls;
cbq->seq = 0;
cbq->group = cbq->id.id.idx;
spin_lock_init(&dev->queue_lock);
dev->nls = nls;
- dev->netlink_groups = 0;
- dev->cn_queue = create_workqueue(dev->name);
+ dev->cn_queue = create_singlethread_workqueue(dev->name);
if (!dev->cn_queue) {
kfree(dev);
return NULL;