aboutsummaryrefslogtreecommitdiffstats
path: root/net/8021q/vlan_dev.c
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@linux-foundation.org>2007-10-09 04:36:32 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:52:50 -0400
commit0c4e85813d0a94eeb8bf813397a4907bdd7bb610 (patch)
tree53ee948abc930bb1c5cd270c490f87fda5eb45b3 /net/8021q/vlan_dev.c
parent4c94f8c0c9a82fad84bc5df453aff755cfed70b7 (diff)
[NET]: Wrap netdevice hardware header creation.
Add inline for common usage of hardware header creation, and fix bug in IPV6 mcast where the assumption about negative return is an errno. Negative return from hard_header means not enough space was available,(ie -N bytes). Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/8021q/vlan_dev.c')
-rw-r--r--net/8021q/vlan_dev.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 6644e8f5f199..ca8090fdabbb 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -434,21 +434,19 @@ int vlan_dev_hard_header(struct sk_buff *skb, struct net_device *dev,
434 434
435 if (build_vlan_header) { 435 if (build_vlan_header) {
436 /* Now make the underlying real hard header */ 436 /* Now make the underlying real hard header */
437 rc = dev->hard_header(skb, dev, ETH_P_8021Q, daddr, saddr, len + VLAN_HLEN); 437 rc = dev_hard_header(skb, dev, ETH_P_8021Q, daddr, saddr,
438 438 len + VLAN_HLEN);
439 if (rc > 0) { 439 if (rc > 0)
440 rc += VLAN_HLEN; 440 rc += VLAN_HLEN;
441 } else if (rc < 0) { 441 else if (rc < 0)
442 rc -= VLAN_HLEN; 442 rc -= VLAN_HLEN;
443 } 443 } else
444 } else {
445 /* If here, then we'll just make a normal looking ethernet frame, 444 /* If here, then we'll just make a normal looking ethernet frame,
446 * but, the hard_start_xmit method will insert the tag (it has to 445 * but, the hard_start_xmit method will insert the tag (it has to
447 * be able to do this for bridged and other skbs that don't come 446 * be able to do this for bridged and other skbs that don't come
448 * down the protocol stack in an orderly manner. 447 * down the protocol stack in an orderly manner.
449 */ 448 */
450 rc = dev->hard_header(skb, dev, type, daddr, saddr, len); 449 rc = dev_hard_header(skb, dev, type, daddr, saddr, len);
451 }
452 450
453 return rc; 451 return rc;
454} 452}