aboutsummaryrefslogtreecommitdiffstats
path: root/net/8021q
diff options
context:
space:
mode:
Diffstat (limited to 'net/8021q')
-rw-r--r--net/8021q/vlan.c34
-rw-r--r--net/8021q/vlan.h19
-rw-r--r--net/8021q/vlan_core.c6
-rw-r--r--net/8021q/vlan_dev.c47
-rw-r--r--net/8021q/vlan_gvrp.c8
5 files changed, 55 insertions, 59 deletions
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index 7a2625d2f9a0..68bdcf4a795c 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -83,13 +83,12 @@ static struct vlan_group *__vlan_find_group(struct net_device *real_dev)
83 * 83 *
84 * Must be invoked with RCU read lock (no preempt) 84 * Must be invoked with RCU read lock (no preempt)
85 */ 85 */
86struct net_device *__find_vlan_dev(struct net_device *real_dev, 86struct net_device *__find_vlan_dev(struct net_device *real_dev, u16 vlan_id)
87 unsigned short VID)
88{ 87{
89 struct vlan_group *grp = __vlan_find_group(real_dev); 88 struct vlan_group *grp = __vlan_find_group(real_dev);
90 89
91 if (grp) 90 if (grp)
92 return vlan_group_get_device(grp, VID); 91 return vlan_group_get_device(grp, vlan_id);
93 92
94 return NULL; 93 return NULL;
95} 94}
@@ -117,14 +116,14 @@ static struct vlan_group *vlan_group_alloc(struct net_device *real_dev)
117 return grp; 116 return grp;
118} 117}
119 118
120static int vlan_group_prealloc_vid(struct vlan_group *vg, int vid) 119static int vlan_group_prealloc_vid(struct vlan_group *vg, u16 vlan_id)
121{ 120{
122 struct net_device **array; 121 struct net_device **array;
123 unsigned int size; 122 unsigned int size;
124 123
125 ASSERT_RTNL(); 124 ASSERT_RTNL();
126 125
127 array = vg->vlan_devices_arrays[vid / VLAN_GROUP_ARRAY_PART_LEN]; 126 array = vg->vlan_devices_arrays[vlan_id / VLAN_GROUP_ARRAY_PART_LEN];
128 if (array != NULL) 127 if (array != NULL)
129 return 0; 128 return 0;
130 129
@@ -133,7 +132,7 @@ static int vlan_group_prealloc_vid(struct vlan_group *vg, int vid)
133 if (array == NULL) 132 if (array == NULL)
134 return -ENOBUFS; 133 return -ENOBUFS;
135 134
136 vg->vlan_devices_arrays[vid / VLAN_GROUP_ARRAY_PART_LEN] = array; 135 vg->vlan_devices_arrays[vlan_id / VLAN_GROUP_ARRAY_PART_LEN] = array;
137 return 0; 136 return 0;
138} 137}
139 138
@@ -147,7 +146,7 @@ void unregister_vlan_dev(struct net_device *dev)
147 struct vlan_dev_info *vlan = vlan_dev_info(dev); 146 struct vlan_dev_info *vlan = vlan_dev_info(dev);
148 struct net_device *real_dev = vlan->real_dev; 147 struct net_device *real_dev = vlan->real_dev;
149 struct vlan_group *grp; 148 struct vlan_group *grp;
150 unsigned short vlan_id = vlan->vlan_id; 149 u16 vlan_id = vlan->vlan_id;
151 150
152 ASSERT_RTNL(); 151 ASSERT_RTNL();
153 152
@@ -205,7 +204,7 @@ static void vlan_transfer_operstate(const struct net_device *dev,
205 } 204 }
206} 205}
207 206
208int vlan_check_real_dev(struct net_device *real_dev, unsigned short vlan_id) 207int vlan_check_real_dev(struct net_device *real_dev, u16 vlan_id)
209{ 208{
210 char *name = real_dev->name; 209 char *name = real_dev->name;
211 210
@@ -242,7 +241,7 @@ int register_vlan_dev(struct net_device *dev)
242{ 241{
243 struct vlan_dev_info *vlan = vlan_dev_info(dev); 242 struct vlan_dev_info *vlan = vlan_dev_info(dev);
244 struct net_device *real_dev = vlan->real_dev; 243 struct net_device *real_dev = vlan->real_dev;
245 unsigned short vlan_id = vlan->vlan_id; 244 u16 vlan_id = vlan->vlan_id;
246 struct vlan_group *grp, *ngrp = NULL; 245 struct vlan_group *grp, *ngrp = NULL;
247 int err; 246 int err;
248 247
@@ -295,8 +294,7 @@ out_free_group:
295/* Attach a VLAN device to a mac address (ie Ethernet Card). 294/* Attach a VLAN device to a mac address (ie Ethernet Card).
296 * Returns 0 if the device was created or a negative error code otherwise. 295 * Returns 0 if the device was created or a negative error code otherwise.
297 */ 296 */
298static int register_vlan_device(struct net_device *real_dev, 297static int register_vlan_device(struct net_device *real_dev, u16 vlan_id)
299 unsigned short VLAN_ID)
300{ 298{
301 struct net_device *new_dev; 299 struct net_device *new_dev;
302 struct net *net = dev_net(real_dev); 300 struct net *net = dev_net(real_dev);
@@ -304,10 +302,10 @@ static int register_vlan_device(struct net_device *real_dev,
304 char name[IFNAMSIZ]; 302 char name[IFNAMSIZ];
305 int err; 303 int err;
306 304
307 if (VLAN_ID >= VLAN_VID_MASK) 305 if (vlan_id >= VLAN_VID_MASK)
308 return -ERANGE; 306 return -ERANGE;
309 307
310 err = vlan_check_real_dev(real_dev, VLAN_ID); 308 err = vlan_check_real_dev(real_dev, vlan_id);
311 if (err < 0) 309 if (err < 0)
312 return err; 310 return err;
313 311
@@ -315,26 +313,26 @@ static int register_vlan_device(struct net_device *real_dev,
315 switch (vn->name_type) { 313 switch (vn->name_type) {
316 case VLAN_NAME_TYPE_RAW_PLUS_VID: 314 case VLAN_NAME_TYPE_RAW_PLUS_VID:
317 /* name will look like: eth1.0005 */ 315 /* name will look like: eth1.0005 */
318 snprintf(name, IFNAMSIZ, "%s.%.4i", real_dev->name, VLAN_ID); 316 snprintf(name, IFNAMSIZ, "%s.%.4i", real_dev->name, vlan_id);
319 break; 317 break;
320 case VLAN_NAME_TYPE_PLUS_VID_NO_PAD: 318 case VLAN_NAME_TYPE_PLUS_VID_NO_PAD:
321 /* Put our vlan.VID in the name. 319 /* Put our vlan.VID in the name.
322 * Name will look like: vlan5 320 * Name will look like: vlan5
323 */ 321 */
324 snprintf(name, IFNAMSIZ, "vlan%i", VLAN_ID); 322 snprintf(name, IFNAMSIZ, "vlan%i", vlan_id);
325 break; 323 break;
326 case VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD: 324 case VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD:
327 /* Put our vlan.VID in the name. 325 /* Put our vlan.VID in the name.
328 * Name will look like: eth0.5 326 * Name will look like: eth0.5
329 */ 327 */
330 snprintf(name, IFNAMSIZ, "%s.%i", real_dev->name, VLAN_ID); 328 snprintf(name, IFNAMSIZ, "%s.%i", real_dev->name, vlan_id);
331 break; 329 break;
332 case VLAN_NAME_TYPE_PLUS_VID: 330 case VLAN_NAME_TYPE_PLUS_VID:
333 /* Put our vlan.VID in the name. 331 /* Put our vlan.VID in the name.
334 * Name will look like: vlan0005 332 * Name will look like: vlan0005
335 */ 333 */
336 default: 334 default:
337 snprintf(name, IFNAMSIZ, "vlan%.4i", VLAN_ID); 335 snprintf(name, IFNAMSIZ, "vlan%.4i", vlan_id);
338 } 336 }
339 337
340 new_dev = alloc_netdev(sizeof(struct vlan_dev_info), name, 338 new_dev = alloc_netdev(sizeof(struct vlan_dev_info), name,
@@ -349,7 +347,7 @@ static int register_vlan_device(struct net_device *real_dev,
349 */ 347 */
350 new_dev->mtu = real_dev->mtu; 348 new_dev->mtu = real_dev->mtu;
351 349
352 vlan_dev_info(new_dev)->vlan_id = VLAN_ID; /* 1 through VLAN_VID_MASK */ 350 vlan_dev_info(new_dev)->vlan_id = vlan_id;
353 vlan_dev_info(new_dev)->real_dev = real_dev; 351 vlan_dev_info(new_dev)->real_dev = real_dev;
354 vlan_dev_info(new_dev)->dent = NULL; 352 vlan_dev_info(new_dev)->dent = NULL;
355 vlan_dev_info(new_dev)->flags = VLAN_FLAG_REORDER_HDR; 353 vlan_dev_info(new_dev)->flags = VLAN_FLAG_REORDER_HDR;
diff --git a/net/8021q/vlan.h b/net/8021q/vlan.h
index 14c421e033f2..a6603a4d917f 100644
--- a/net/8021q/vlan.h
+++ b/net/8021q/vlan.h
@@ -12,7 +12,7 @@
12 */ 12 */
13struct vlan_priority_tci_mapping { 13struct vlan_priority_tci_mapping {
14 u32 priority; 14 u32 priority;
15 unsigned short vlan_qos; 15 u16 vlan_qos;
16 struct vlan_priority_tci_mapping *next; 16 struct vlan_priority_tci_mapping *next;
17}; 17};
18 18
@@ -36,8 +36,8 @@ struct vlan_dev_info {
36 unsigned int nr_egress_mappings; 36 unsigned int nr_egress_mappings;
37 struct vlan_priority_tci_mapping *egress_priority_map[16]; 37 struct vlan_priority_tci_mapping *egress_priority_map[16];
38 38
39 unsigned short vlan_id; 39 u16 vlan_id;
40 unsigned short flags; 40 u16 flags;
41 41
42 struct net_device *real_dev; 42 struct net_device *real_dev;
43 unsigned char real_dev_addr[ETH_ALEN]; 43 unsigned char real_dev_addr[ETH_ALEN];
@@ -67,30 +67,29 @@ static inline struct vlan_dev_info *vlan_dev_info(const struct net_device *dev)
67 * Must be invoked with rcu_read_lock (ie preempt disabled) 67 * Must be invoked with rcu_read_lock (ie preempt disabled)
68 * or with RTNL. 68 * or with RTNL.
69 */ 69 */
70struct net_device *__find_vlan_dev(struct net_device *real_dev, 70struct net_device *__find_vlan_dev(struct net_device *real_dev, u16 vlan_id);
71 unsigned short VID); /* vlan.c */
72 71
73/* found in vlan_dev.c */ 72/* found in vlan_dev.c */
74int vlan_skb_recv(struct sk_buff *skb, struct net_device *dev, 73int vlan_skb_recv(struct sk_buff *skb, struct net_device *dev,
75 struct packet_type *ptype, struct net_device *orig_dev); 74 struct packet_type *ptype, struct net_device *orig_dev);
76void vlan_dev_set_ingress_priority(const struct net_device *dev, 75void vlan_dev_set_ingress_priority(const struct net_device *dev,
77 u32 skb_prio, short vlan_prio); 76 u32 skb_prio, u16 vlan_prio);
78int vlan_dev_set_egress_priority(const struct net_device *dev, 77int vlan_dev_set_egress_priority(const struct net_device *dev,
79 u32 skb_prio, short vlan_prio); 78 u32 skb_prio, u16 vlan_prio);
80int vlan_dev_change_flags(const struct net_device *dev, u32 flag, u32 mask); 79int vlan_dev_change_flags(const struct net_device *dev, u32 flag, u32 mask);
81void vlan_dev_get_realdev_name(const struct net_device *dev, char *result); 80void vlan_dev_get_realdev_name(const struct net_device *dev, char *result);
82 81
83int vlan_check_real_dev(struct net_device *real_dev, unsigned short vlan_id); 82int vlan_check_real_dev(struct net_device *real_dev, u16 vlan_id);
84void vlan_setup(struct net_device *dev); 83void vlan_setup(struct net_device *dev);
85int register_vlan_dev(struct net_device *dev); 84int register_vlan_dev(struct net_device *dev);
86void unregister_vlan_dev(struct net_device *dev); 85void unregister_vlan_dev(struct net_device *dev);
87 86
88static inline u32 vlan_get_ingress_priority(struct net_device *dev, 87static inline u32 vlan_get_ingress_priority(struct net_device *dev,
89 unsigned short vlan_tag) 88 u16 vlan_tci)
90{ 89{
91 struct vlan_dev_info *vip = vlan_dev_info(dev); 90 struct vlan_dev_info *vip = vlan_dev_info(dev);
92 91
93 return vip->ingress_priority_map[(vlan_tag >> 13) & 0x7]; 92 return vip->ingress_priority_map[(vlan_tci >> 13) & 0x7];
94} 93}
95 94
96#ifdef CONFIG_VLAN_8021Q_GVRP 95#ifdef CONFIG_VLAN_8021Q_GVRP
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
index f980b9154cc3..68df12d3664b 100644
--- a/net/8021q/vlan_core.c
+++ b/net/8021q/vlan_core.c
@@ -5,7 +5,7 @@
5 5
6/* VLAN rx hw acceleration helper. This acts like netif_{rx,receive_skb}(). */ 6/* VLAN rx hw acceleration helper. This acts like netif_{rx,receive_skb}(). */
7int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp, 7int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp,
8 unsigned short vlan_tag, int polling) 8 u16 vlan_tci, int polling)
9{ 9{
10 struct net_device_stats *stats; 10 struct net_device_stats *stats;
11 11
@@ -14,7 +14,7 @@ int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp,
14 return NET_RX_DROP; 14 return NET_RX_DROP;
15 } 15 }
16 16
17 skb->dev = vlan_group_get_device(grp, vlan_tag & VLAN_VID_MASK); 17 skb->dev = vlan_group_get_device(grp, vlan_tci & VLAN_VID_MASK);
18 if (skb->dev == NULL) { 18 if (skb->dev == NULL) {
19 dev_kfree_skb_any(skb); 19 dev_kfree_skb_any(skb);
20 /* Not NET_RX_DROP, this is not being dropped 20 /* Not NET_RX_DROP, this is not being dropped
@@ -27,7 +27,7 @@ int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp,
27 stats->rx_packets++; 27 stats->rx_packets++;
28 stats->rx_bytes += skb->len; 28 stats->rx_bytes += skb->len;
29 29
30 skb->priority = vlan_get_ingress_priority(skb->dev, vlan_tag); 30 skb->priority = vlan_get_ingress_priority(skb->dev, vlan_tci);
31 switch (skb->pkt_type) { 31 switch (skb->pkt_type) {
32 case PACKET_BROADCAST: 32 case PACKET_BROADCAST:
33 break; 33 break;
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 2aab294c5744..2ccac6bea57e 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -150,9 +150,9 @@ int vlan_skb_recv(struct sk_buff *skb, struct net_device *dev,
150 struct packet_type *ptype, struct net_device *orig_dev) 150 struct packet_type *ptype, struct net_device *orig_dev)
151{ 151{
152 struct vlan_hdr *vhdr; 152 struct vlan_hdr *vhdr;
153 unsigned short vid;
154 struct net_device_stats *stats; 153 struct net_device_stats *stats;
155 unsigned short vlan_TCI; 154 u16 vlan_id;
155 u16 vlan_tci;
156 156
157 skb = skb_share_check(skb, GFP_ATOMIC); 157 skb = skb_share_check(skb, GFP_ATOMIC);
158 if (skb == NULL) 158 if (skb == NULL)
@@ -162,14 +162,14 @@ int vlan_skb_recv(struct sk_buff *skb, struct net_device *dev,
162 goto err_free; 162 goto err_free;
163 163
164 vhdr = (struct vlan_hdr *)skb->data; 164 vhdr = (struct vlan_hdr *)skb->data;
165 vlan_TCI = ntohs(vhdr->h_vlan_TCI); 165 vlan_tci = ntohs(vhdr->h_vlan_TCI);
166 vid = (vlan_TCI & VLAN_VID_MASK); 166 vlan_id = vlan_tci & VLAN_VID_MASK;
167 167
168 rcu_read_lock(); 168 rcu_read_lock();
169 skb->dev = __find_vlan_dev(dev, vid); 169 skb->dev = __find_vlan_dev(dev, vlan_id);
170 if (!skb->dev) { 170 if (!skb->dev) {
171 pr_debug("%s: ERROR: No net_device for VID: %u on dev: %s\n", 171 pr_debug("%s: ERROR: No net_device for VID: %u on dev: %s\n",
172 __func__, (unsigned int)vid, dev->name); 172 __func__, vlan_id, dev->name);
173 goto err_unlock; 173 goto err_unlock;
174 } 174 }
175 175
@@ -181,11 +181,10 @@ int vlan_skb_recv(struct sk_buff *skb, struct net_device *dev,
181 181
182 skb_pull_rcsum(skb, VLAN_HLEN); 182 skb_pull_rcsum(skb, VLAN_HLEN);
183 183
184 skb->priority = vlan_get_ingress_priority(skb->dev, 184 skb->priority = vlan_get_ingress_priority(skb->dev, vlan_tci);
185 ntohs(vhdr->h_vlan_TCI));
186 185
187 pr_debug("%s: priority: %u for TCI: %hu\n", 186 pr_debug("%s: priority: %u for TCI: %hu\n",
188 __func__, skb->priority, ntohs(vhdr->h_vlan_TCI)); 187 __func__, skb->priority, vlan_tci);
189 188
190 switch (skb->pkt_type) { 189 switch (skb->pkt_type) {
191 case PACKET_BROADCAST: /* Yeah, stats collect these together.. */ 190 case PACKET_BROADCAST: /* Yeah, stats collect these together.. */
@@ -228,7 +227,7 @@ err_free:
228 return NET_RX_DROP; 227 return NET_RX_DROP;
229} 228}
230 229
231static inline unsigned short 230static inline u16
232vlan_dev_get_egress_qos_mask(struct net_device *dev, struct sk_buff *skb) 231vlan_dev_get_egress_qos_mask(struct net_device *dev, struct sk_buff *skb)
233{ 232{
234 struct vlan_priority_tci_mapping *mp; 233 struct vlan_priority_tci_mapping *mp;
@@ -260,7 +259,7 @@ static int vlan_dev_hard_header(struct sk_buff *skb, struct net_device *dev,
260 unsigned int len) 259 unsigned int len)
261{ 260{
262 struct vlan_hdr *vhdr; 261 struct vlan_hdr *vhdr;
263 unsigned short veth_TCI = 0; 262 u16 vlan_tci = 0;
264 int rc = 0; 263 int rc = 0;
265 int build_vlan_header = 0; 264 int build_vlan_header = 0;
266 struct net_device *vdev = dev; 265 struct net_device *vdev = dev;
@@ -292,10 +291,10 @@ static int vlan_dev_hard_header(struct sk_buff *skb, struct net_device *dev,
292 * VLAN ID 12 bits (low bits) 291 * VLAN ID 12 bits (low bits)
293 * 292 *
294 */ 293 */
295 veth_TCI = vlan_dev_info(dev)->vlan_id; 294 vlan_tci = vlan_dev_info(dev)->vlan_id;
296 veth_TCI |= vlan_dev_get_egress_qos_mask(dev, skb); 295 vlan_tci |= vlan_dev_get_egress_qos_mask(dev, skb);
297 296
298 vhdr->h_vlan_TCI = htons(veth_TCI); 297 vhdr->h_vlan_TCI = htons(vlan_tci);
299 298
300 /* 299 /*
301 * Set the protocol type. For a packet of type ETH_P_802_3 we 300 * Set the protocol type. For a packet of type ETH_P_802_3 we
@@ -373,7 +372,7 @@ static int vlan_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
373 if (veth->h_vlan_proto != htons(ETH_P_8021Q) || 372 if (veth->h_vlan_proto != htons(ETH_P_8021Q) ||
374 vlan_dev_info(dev)->flags & VLAN_FLAG_REORDER_HDR) { 373 vlan_dev_info(dev)->flags & VLAN_FLAG_REORDER_HDR) {
375 int orig_headroom = skb_headroom(skb); 374 int orig_headroom = skb_headroom(skb);
376 unsigned short veth_TCI; 375 u16 vlan_tci;
377 376
378 /* This is not a VLAN frame...but we can fix that! */ 377 /* This is not a VLAN frame...but we can fix that! */
379 vlan_dev_info(dev)->cnt_encap_on_xmit++; 378 vlan_dev_info(dev)->cnt_encap_on_xmit++;
@@ -386,10 +385,10 @@ static int vlan_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
386 * CFI 1 bit 385 * CFI 1 bit
387 * VLAN ID 12 bits (low bits) 386 * VLAN ID 12 bits (low bits)
388 */ 387 */
389 veth_TCI = vlan_dev_info(dev)->vlan_id; 388 vlan_tci = vlan_dev_info(dev)->vlan_id;
390 veth_TCI |= vlan_dev_get_egress_qos_mask(dev, skb); 389 vlan_tci |= vlan_dev_get_egress_qos_mask(dev, skb);
391 390
392 skb = __vlan_put_tag(skb, veth_TCI); 391 skb = __vlan_put_tag(skb, vlan_tci);
393 if (!skb) { 392 if (!skb) {
394 stats->tx_dropped++; 393 stats->tx_dropped++;
395 return 0; 394 return 0;
@@ -422,7 +421,7 @@ static int vlan_dev_hwaccel_hard_start_xmit(struct sk_buff *skb,
422 struct net_device *dev) 421 struct net_device *dev)
423{ 422{
424 struct net_device_stats *stats = &dev->stats; 423 struct net_device_stats *stats = &dev->stats;
425 unsigned short veth_TCI; 424 u16 vlan_tci;
426 425
427 /* Construct the second two bytes. This field looks something 426 /* Construct the second two bytes. This field looks something
428 * like: 427 * like:
@@ -430,9 +429,9 @@ static int vlan_dev_hwaccel_hard_start_xmit(struct sk_buff *skb,
430 * CFI 1 bit 429 * CFI 1 bit
431 * VLAN ID 12 bits (low bits) 430 * VLAN ID 12 bits (low bits)
432 */ 431 */
433 veth_TCI = vlan_dev_info(dev)->vlan_id; 432 vlan_tci = vlan_dev_info(dev)->vlan_id;
434 veth_TCI |= vlan_dev_get_egress_qos_mask(dev, skb); 433 vlan_tci |= vlan_dev_get_egress_qos_mask(dev, skb);
435 skb = __vlan_hwaccel_put_tag(skb, veth_TCI); 434 skb = __vlan_hwaccel_put_tag(skb, vlan_tci);
436 435
437 stats->tx_packets++; 436 stats->tx_packets++;
438 stats->tx_bytes += skb->len; 437 stats->tx_bytes += skb->len;
@@ -457,7 +456,7 @@ static int vlan_dev_change_mtu(struct net_device *dev, int new_mtu)
457} 456}
458 457
459void vlan_dev_set_ingress_priority(const struct net_device *dev, 458void vlan_dev_set_ingress_priority(const struct net_device *dev,
460 u32 skb_prio, short vlan_prio) 459 u32 skb_prio, u16 vlan_prio)
461{ 460{
462 struct vlan_dev_info *vlan = vlan_dev_info(dev); 461 struct vlan_dev_info *vlan = vlan_dev_info(dev);
463 462
@@ -470,7 +469,7 @@ void vlan_dev_set_ingress_priority(const struct net_device *dev,
470} 469}
471 470
472int vlan_dev_set_egress_priority(const struct net_device *dev, 471int vlan_dev_set_egress_priority(const struct net_device *dev,
473 u32 skb_prio, short vlan_prio) 472 u32 skb_prio, u16 vlan_prio)
474{ 473{
475 struct vlan_dev_info *vlan = vlan_dev_info(dev); 474 struct vlan_dev_info *vlan = vlan_dev_info(dev);
476 struct vlan_priority_tci_mapping *mp = NULL; 475 struct vlan_priority_tci_mapping *mp = NULL;
diff --git a/net/8021q/vlan_gvrp.c b/net/8021q/vlan_gvrp.c
index db9781608362..061ceceeef12 100644
--- a/net/8021q/vlan_gvrp.c
+++ b/net/8021q/vlan_gvrp.c
@@ -30,19 +30,19 @@ static struct garp_application vlan_gvrp_app __read_mostly = {
30int vlan_gvrp_request_join(const struct net_device *dev) 30int vlan_gvrp_request_join(const struct net_device *dev)
31{ 31{
32 const struct vlan_dev_info *vlan = vlan_dev_info(dev); 32 const struct vlan_dev_info *vlan = vlan_dev_info(dev);
33 __be16 vid = htons(vlan->vlan_id); 33 __be16 vlan_id = htons(vlan->vlan_id);
34 34
35 return garp_request_join(vlan->real_dev, &vlan_gvrp_app, 35 return garp_request_join(vlan->real_dev, &vlan_gvrp_app,
36 &vid, sizeof(vid), GVRP_ATTR_VID); 36 &vlan_id, sizeof(vlan_id), GVRP_ATTR_VID);
37} 37}
38 38
39void vlan_gvrp_request_leave(const struct net_device *dev) 39void vlan_gvrp_request_leave(const struct net_device *dev)
40{ 40{
41 const struct vlan_dev_info *vlan = vlan_dev_info(dev); 41 const struct vlan_dev_info *vlan = vlan_dev_info(dev);
42 __be16 vid = htons(vlan->vlan_id); 42 __be16 vlan_id = htons(vlan->vlan_id);
43 43
44 garp_request_leave(vlan->real_dev, &vlan_gvrp_app, 44 garp_request_leave(vlan->real_dev, &vlan_gvrp_app,
45 &vid, sizeof(vid), GVRP_ATTR_VID); 45 &vlan_id, sizeof(vlan_id), GVRP_ATTR_VID);
46} 46}
47 47
48int vlan_gvrp_init_applicant(struct net_device *dev) 48int vlan_gvrp_init_applicant(struct net_device *dev)