|
@@ -105,17 +105,8 @@ static inline void vlan_group_set_device(struct vlan_group *vg,
|
|
|
array[vlan_id % VLAN_GROUP_ARRAY_PART_LEN] = dev;
|
|
|
}
|
|
|
|
|
|
-/* VLAN tx hw acceleration helpers. */
|
|
|
-struct vlan_skb_tx_cookie {
|
|
|
- u32 magic;
|
|
|
- u32 vlan_tag;
|
|
|
-};
|
|
|
-
|
|
|
-#define VLAN_TX_COOKIE_MAGIC 0x564c414e /* "VLAN" in ascii. */
|
|
|
-#define VLAN_TX_SKB_CB(__skb) ((struct vlan_skb_tx_cookie *)&((__skb)->cb[0]))
|
|
|
-#define vlan_tx_tag_present(__skb) \
|
|
|
- (VLAN_TX_SKB_CB(__skb)->magic == VLAN_TX_COOKIE_MAGIC)
|
|
|
-#define vlan_tx_tag_get(__skb) (VLAN_TX_SKB_CB(__skb)->vlan_tag)
|
|
|
+#define vlan_tx_tag_present(__skb) ((__skb)->vlan_tci)
|
|
|
+#define vlan_tx_tag_get(__skb) ((__skb)->vlan_tci)
|
|
|
|
|
|
#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
|
|
|
extern struct net_device *vlan_dev_real_dev(const struct net_device *dev);
|
|
@@ -210,17 +201,12 @@ static inline struct sk_buff *__vlan_put_tag(struct sk_buff *skb, u16 vlan_tci)
|
|
|
* @skb: skbuff to tag
|
|
|
* @vlan_tci: VLAN TCI to insert
|
|
|
*
|
|
|
- * Puts the VLAN TCI in @skb->cb[] and lets the device do the rest
|
|
|
+ * Puts the VLAN TCI in @skb->vlan_tci and lets the device do the rest
|
|
|
*/
|
|
|
static inline struct sk_buff *__vlan_hwaccel_put_tag(struct sk_buff *skb,
|
|
|
u16 vlan_tci)
|
|
|
{
|
|
|
- struct vlan_skb_tx_cookie *cookie;
|
|
|
-
|
|
|
- cookie = VLAN_TX_SKB_CB(skb);
|
|
|
- cookie->magic = VLAN_TX_COOKIE_MAGIC;
|
|
|
- cookie->vlan_tag = vlan_tci;
|
|
|
-
|
|
|
+ skb->vlan_tci = vlan_tci;
|
|
|
return skb;
|
|
|
}
|
|
|
|
|
@@ -267,16 +253,13 @@ static inline int __vlan_get_tag(const struct sk_buff *skb, u16 *vlan_tci)
|
|
|
* @skb: skbuff to query
|
|
|
* @vlan_tci: buffer to store vlaue
|
|
|
*
|
|
|
- * Returns error if @skb->cb[] is not set correctly
|
|
|
+ * Returns error if @skb->vlan_tci is not set correctly
|
|
|
*/
|
|
|
static inline int __vlan_hwaccel_get_tag(const struct sk_buff *skb,
|
|
|
u16 *vlan_tci)
|
|
|
{
|
|
|
- struct vlan_skb_tx_cookie *cookie;
|
|
|
-
|
|
|
- cookie = VLAN_TX_SKB_CB(skb);
|
|
|
- if (cookie->magic == VLAN_TX_COOKIE_MAGIC) {
|
|
|
- *vlan_tci = cookie->vlan_tag;
|
|
|
+ if (vlan_tx_tag_present(skb)) {
|
|
|
+ *vlan_tci = skb->vlan_tci;
|
|
|
return 0;
|
|
|
} else {
|
|
|
*vlan_tci = 0;
|