mirror of https://gitee.com/openkylin/linux.git
vlan: clean up hard_start_xmit functions
Remove excessive comments and debugging, use NETDEV_TX codes, remove some empty lines. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1349fe9a6b
commit
d80aa31bbf
|
@ -307,53 +307,31 @@ static int vlan_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
* NOTE: THIS ASSUMES DIX ETHERNET, SPECIFICALLY NOT SUPPORTING
|
||||
* OTHER THINGS LIKE FDDI/TokenRing/802.3 SNAPs...
|
||||
*/
|
||||
|
||||
if (veth->h_vlan_proto != htons(ETH_P_8021Q) ||
|
||||
vlan_dev_info(dev)->flags & VLAN_FLAG_REORDER_HDR) {
|
||||
int orig_headroom = skb_headroom(skb);
|
||||
vlan_dev_info(dev)->flags & VLAN_FLAG_REORDER_HDR) {
|
||||
unsigned int orig_headroom = skb_headroom(skb);
|
||||
u16 vlan_tci;
|
||||
|
||||
/* This is not a VLAN frame...but we can fix that! */
|
||||
vlan_dev_info(dev)->cnt_encap_on_xmit++;
|
||||
|
||||
pr_debug("%s: proto to encap: 0x%hx\n",
|
||||
__func__, ntohs(veth->h_vlan_proto));
|
||||
/* Construct the second two bytes. This field looks something
|
||||
* like:
|
||||
* usr_priority: 3 bits (high bits)
|
||||
* CFI 1 bit
|
||||
* VLAN ID 12 bits (low bits)
|
||||
*/
|
||||
vlan_tci = vlan_dev_info(dev)->vlan_id;
|
||||
vlan_tci |= vlan_dev_get_egress_qos_mask(dev, skb);
|
||||
|
||||
skb = __vlan_put_tag(skb, vlan_tci);
|
||||
if (!skb) {
|
||||
stats->tx_dropped++;
|
||||
return 0;
|
||||
return NETDEV_TX_OK;
|
||||
}
|
||||
|
||||
if (orig_headroom < VLAN_HLEN)
|
||||
vlan_dev_info(dev)->cnt_inc_headroom_on_tx++;
|
||||
}
|
||||
|
||||
pr_debug("%s: about to send skb: %p to dev: %s\n",
|
||||
__func__, skb, skb->dev->name);
|
||||
pr_debug(" " MAC_FMT " " MAC_FMT " %4hx %4hx %4hx\n",
|
||||
veth->h_dest[0], veth->h_dest[1], veth->h_dest[2],
|
||||
veth->h_dest[3], veth->h_dest[4], veth->h_dest[5],
|
||||
veth->h_source[0], veth->h_source[1], veth->h_source[2],
|
||||
veth->h_source[3], veth->h_source[4], veth->h_source[5],
|
||||
veth->h_vlan_proto, veth->h_vlan_TCI,
|
||||
veth->h_vlan_encapsulated_proto);
|
||||
|
||||
stats->tx_packets++; /* for statics only */
|
||||
stats->tx_packets++;
|
||||
stats->tx_bytes += skb->len;
|
||||
|
||||
skb->dev = vlan_dev_info(dev)->real_dev;
|
||||
dev_queue_xmit(skb);
|
||||
|
||||
return 0;
|
||||
return NETDEV_TX_OK;
|
||||
}
|
||||
|
||||
static int vlan_dev_hwaccel_hard_start_xmit(struct sk_buff *skb,
|
||||
|
@ -362,12 +340,6 @@ static int vlan_dev_hwaccel_hard_start_xmit(struct sk_buff *skb,
|
|||
struct net_device_stats *stats = &dev->stats;
|
||||
u16 vlan_tci;
|
||||
|
||||
/* Construct the second two bytes. This field looks something
|
||||
* like:
|
||||
* usr_priority: 3 bits (high bits)
|
||||
* CFI 1 bit
|
||||
* VLAN ID 12 bits (low bits)
|
||||
*/
|
||||
vlan_tci = vlan_dev_info(dev)->vlan_id;
|
||||
vlan_tci |= vlan_dev_get_egress_qos_mask(dev, skb);
|
||||
skb = __vlan_hwaccel_put_tag(skb, vlan_tci);
|
||||
|
@ -377,8 +349,7 @@ static int vlan_dev_hwaccel_hard_start_xmit(struct sk_buff *skb,
|
|||
|
||||
skb->dev = vlan_dev_info(dev)->real_dev;
|
||||
dev_queue_xmit(skb);
|
||||
|
||||
return 0;
|
||||
return NETDEV_TX_OK;
|
||||
}
|
||||
|
||||
static int vlan_dev_change_mtu(struct net_device *dev, int new_mtu)
|
||||
|
|
Loading…
Reference in New Issue