diff options
author | David S. Miller <davem@davemloft.net> | 2012-05-16 22:17:37 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-05-16 22:17:37 -0400 |
commit | 028940342a906db8da014a7603a0deddc2c323dd (patch) | |
tree | 688dbc38a3e218f2493d311b1d70a67668837347 /net/core/dev.c | |
parent | be3eed2e96340d3c7a4d1ea1d63e7bd6095d1e34 (diff) | |
parent | 0e93b4b304ae052ba1bc73f6d34a68556fe93429 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 36 |
1 files changed, 5 insertions, 31 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 66cae6e975d9..33684b6e95e2 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -1616,10 +1616,14 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb) | |||
1616 | return NET_RX_DROP; | 1616 | return NET_RX_DROP; |
1617 | } | 1617 | } |
1618 | skb->skb_iif = 0; | 1618 | skb->skb_iif = 0; |
1619 | skb_set_dev(skb, dev); | 1619 | skb->dev = dev; |
1620 | skb_dst_drop(skb); | ||
1620 | skb->tstamp.tv64 = 0; | 1621 | skb->tstamp.tv64 = 0; |
1621 | skb->pkt_type = PACKET_HOST; | 1622 | skb->pkt_type = PACKET_HOST; |
1622 | skb->protocol = eth_type_trans(skb, dev); | 1623 | skb->protocol = eth_type_trans(skb, dev); |
1624 | skb->mark = 0; | ||
1625 | secpath_reset(skb); | ||
1626 | nf_reset(skb); | ||
1623 | return netif_rx(skb); | 1627 | return netif_rx(skb); |
1624 | } | 1628 | } |
1625 | EXPORT_SYMBOL_GPL(dev_forward_skb); | 1629 | EXPORT_SYMBOL_GPL(dev_forward_skb); |
@@ -1867,36 +1871,6 @@ void netif_device_attach(struct net_device *dev) | |||
1867 | } | 1871 | } |
1868 | EXPORT_SYMBOL(netif_device_attach); | 1872 | EXPORT_SYMBOL(netif_device_attach); |
1869 | 1873 | ||
1870 | /** | ||
1871 | * skb_dev_set -- assign a new device to a buffer | ||
1872 | * @skb: buffer for the new device | ||
1873 | * @dev: network device | ||
1874 | * | ||
1875 | * If an skb is owned by a device already, we have to reset | ||
1876 | * all data private to the namespace a device belongs to | ||
1877 | * before assigning it a new device. | ||
1878 | */ | ||
1879 | #ifdef CONFIG_NET_NS | ||
1880 | void skb_set_dev(struct sk_buff *skb, struct net_device *dev) | ||
1881 | { | ||
1882 | skb_dst_drop(skb); | ||
1883 | if (skb->dev && !net_eq(dev_net(skb->dev), dev_net(dev))) { | ||
1884 | secpath_reset(skb); | ||
1885 | nf_reset(skb); | ||
1886 | skb_init_secmark(skb); | ||
1887 | skb->mark = 0; | ||
1888 | skb->priority = 0; | ||
1889 | skb->nf_trace = 0; | ||
1890 | skb->ipvs_property = 0; | ||
1891 | #ifdef CONFIG_NET_SCHED | ||
1892 | skb->tc_index = 0; | ||
1893 | #endif | ||
1894 | } | ||
1895 | skb->dev = dev; | ||
1896 | } | ||
1897 | EXPORT_SYMBOL(skb_set_dev); | ||
1898 | #endif /* CONFIG_NET_NS */ | ||
1899 | |||
1900 | static void skb_warn_bad_offload(const struct sk_buff *skb) | 1874 | static void skb_warn_bad_offload(const struct sk_buff *skb) |
1901 | { | 1875 | { |
1902 | static const netdev_features_t null_features = 0; | 1876 | static const netdev_features_t null_features = 0; |