diff options
Diffstat (limited to 'net/8021q/vlan_netlink.c')
-rw-r--r-- | net/8021q/vlan_netlink.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/8021q/vlan_netlink.c b/net/8021q/vlan_netlink.c index a91504850195..ddc105734af7 100644 --- a/net/8021q/vlan_netlink.c +++ b/net/8021q/vlan_netlink.c | |||
@@ -60,7 +60,8 @@ static int vlan_validate(struct nlattr *tb[], struct nlattr *data[]) | |||
60 | if (data[IFLA_VLAN_FLAGS]) { | 60 | if (data[IFLA_VLAN_FLAGS]) { |
61 | flags = nla_data(data[IFLA_VLAN_FLAGS]); | 61 | flags = nla_data(data[IFLA_VLAN_FLAGS]); |
62 | if ((flags->flags & flags->mask) & | 62 | if ((flags->flags & flags->mask) & |
63 | ~(VLAN_FLAG_REORDER_HDR | VLAN_FLAG_GVRP)) | 63 | ~(VLAN_FLAG_REORDER_HDR | VLAN_FLAG_GVRP | |
64 | VLAN_FLAG_LOOSE_BINDING)) | ||
64 | return -EINVAL; | 65 | return -EINVAL; |
65 | } | 66 | } |
66 | 67 | ||
@@ -119,7 +120,7 @@ static int vlan_get_tx_queues(struct net *net, | |||
119 | return 0; | 120 | return 0; |
120 | } | 121 | } |
121 | 122 | ||
122 | static int vlan_newlink(struct net_device *dev, | 123 | static int vlan_newlink(struct net *src_net, struct net_device *dev, |
123 | struct nlattr *tb[], struct nlattr *data[]) | 124 | struct nlattr *tb[], struct nlattr *data[]) |
124 | { | 125 | { |
125 | struct vlan_dev_info *vlan = vlan_dev_info(dev); | 126 | struct vlan_dev_info *vlan = vlan_dev_info(dev); |
@@ -131,7 +132,7 @@ static int vlan_newlink(struct net_device *dev, | |||
131 | 132 | ||
132 | if (!tb[IFLA_LINK]) | 133 | if (!tb[IFLA_LINK]) |
133 | return -EINVAL; | 134 | return -EINVAL; |
134 | real_dev = __dev_get_by_index(dev_net(dev), nla_get_u32(tb[IFLA_LINK])); | 135 | real_dev = __dev_get_by_index(src_net, nla_get_u32(tb[IFLA_LINK])); |
135 | if (!real_dev) | 136 | if (!real_dev) |
136 | return -ENODEV; | 137 | return -ENODEV; |
137 | 138 | ||