]> Pileus Git - ~andy/linux/blobdiff - drivers/net/macvtap.c
macvtap: fix uninitialized return value macvtap_ioctl_set_queue()
[~andy/linux] / drivers / net / macvtap.c
index 992151ce08a40de872318cc8d0c3e008cde2e74e..5a76f20776af7d67fb53851698db9d5eae8b7665 100644 (file)
@@ -429,7 +429,7 @@ static int macvtap_open(struct inode *inode, struct file *file)
        if (!q)
                goto out;
 
-       q->sock.wq = &q->wq;
+       RCU_INIT_POINTER(q->sock.wq, &q->wq);
        init_waitqueue_head(&q->wq.wait);
        q->sock.type = SOCK_RAW;
        q->sock.state = SS_CONNECTED;
@@ -969,6 +969,8 @@ static int macvtap_ioctl_set_queue(struct file *file, unsigned int flags)
                ret = macvtap_enable_queue(vlan->dev, file, q);
        else if (flags & IFF_DETACH_QUEUE)
                ret = macvtap_disable_queue(q);
+       else
+               ret = -EINVAL;
 
        macvtap_put_vlan(vlan);
        return ret;