mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-17 14:57:47 +00:00
189ce92b4c
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
139 lines
3.9 KiB
Diff
139 lines
3.9 KiB
Diff
From 8094a25020703041f42a531dfac0a2ee24319119 Mon Sep 17 00:00:00 2001
|
|
From: "David S. Miller" <davem@davemloft.net>
|
|
Date: Thu, 10 May 2012 23:03:34 -0400
|
|
Subject: [PATCH 71/86] Revert "net: maintain namespace isolation between vlan
|
|
and real device"
|
|
|
|
[ Upstream commit 59b9997baba5242997ddc7bd96b1391f5275a5a4 ]
|
|
|
|
This reverts commit 8a83a00b0735190384a348156837918271034144.
|
|
|
|
It causes regressions for S390 devices, because it does an
|
|
unconditional DST drop on SKBs for vlans and the QETH device
|
|
needs the neighbour entry hung off the DST for certain things
|
|
on transmit.
|
|
|
|
Arnd can't remember exactly why he even needed this change.
|
|
|
|
Conflicts:
|
|
|
|
drivers/net/macvlan.c
|
|
net/8021q/vlan_dev.c
|
|
net/core/dev.c
|
|
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
---
|
|
drivers/net/macvlan.c | 2 +-
|
|
include/linux/netdevice.h | 9 ---------
|
|
net/8021q/vlan_dev.c | 2 +-
|
|
net/core/dev.c | 36 +++++-------------------------------
|
|
4 files changed, 7 insertions(+), 42 deletions(-)
|
|
|
|
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
|
|
index 959d448..97f342e 100644
|
|
--- a/drivers/net/macvlan.c
|
|
+++ b/drivers/net/macvlan.c
|
|
@@ -258,7 +258,7 @@ static int macvlan_queue_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
|
xmit_world:
|
|
skb->ip_summed = ip_summed;
|
|
- skb_set_dev(skb, vlan->lowerdev);
|
|
+ skb->dev = vlan->lowerdev;
|
|
return dev_queue_xmit(skb);
|
|
}
|
|
|
|
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
|
|
index cbeb586..cb52340 100644
|
|
--- a/include/linux/netdevice.h
|
|
+++ b/include/linux/netdevice.h
|
|
@@ -1420,15 +1420,6 @@ static inline bool netdev_uses_dsa_tags(struct net_device *dev)
|
|
return 0;
|
|
}
|
|
|
|
-#ifndef CONFIG_NET_NS
|
|
-static inline void skb_set_dev(struct sk_buff *skb, struct net_device *dev)
|
|
-{
|
|
- skb->dev = dev;
|
|
-}
|
|
-#else /* CONFIG_NET_NS */
|
|
-void skb_set_dev(struct sk_buff *skb, struct net_device *dev);
|
|
-#endif
|
|
-
|
|
static inline bool netdev_uses_trailer_tags(struct net_device *dev)
|
|
{
|
|
#ifdef CONFIG_NET_DSA_TAG_TRAILER
|
|
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
|
|
index bc25286..0cccca8 100644
|
|
--- a/net/8021q/vlan_dev.c
|
|
+++ b/net/8021q/vlan_dev.c
|
|
@@ -156,7 +156,7 @@ static netdev_tx_t vlan_dev_hard_start_xmit(struct sk_buff *skb,
|
|
skb = __vlan_hwaccel_put_tag(skb, vlan_tci);
|
|
}
|
|
|
|
- skb_set_dev(skb, vlan_dev_info(dev)->real_dev);
|
|
+ skb->dev = vlan_dev_info(dev)->real_dev;
|
|
len = skb->len;
|
|
ret = dev_queue_xmit(skb);
|
|
|
|
diff --git a/net/core/dev.c b/net/core/dev.c
|
|
index 61a7baa..1cbddc9 100644
|
|
--- a/net/core/dev.c
|
|
+++ b/net/core/dev.c
|
|
@@ -1607,10 +1607,14 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
|
|
kfree_skb(skb);
|
|
return NET_RX_DROP;
|
|
}
|
|
- skb_set_dev(skb, dev);
|
|
+ skb->dev = dev;
|
|
+ skb_dst_drop(skb);
|
|
skb->tstamp.tv64 = 0;
|
|
skb->pkt_type = PACKET_HOST;
|
|
skb->protocol = eth_type_trans(skb, dev);
|
|
+ skb->mark = 0;
|
|
+ secpath_reset(skb);
|
|
+ nf_reset(skb);
|
|
return netif_rx(skb);
|
|
}
|
|
EXPORT_SYMBOL_GPL(dev_forward_skb);
|
|
@@ -1865,36 +1869,6 @@ void netif_device_attach(struct net_device *dev)
|
|
}
|
|
EXPORT_SYMBOL(netif_device_attach);
|
|
|
|
-/**
|
|
- * skb_dev_set -- assign a new device to a buffer
|
|
- * @skb: buffer for the new device
|
|
- * @dev: network device
|
|
- *
|
|
- * If an skb is owned by a device already, we have to reset
|
|
- * all data private to the namespace a device belongs to
|
|
- * before assigning it a new device.
|
|
- */
|
|
-#ifdef CONFIG_NET_NS
|
|
-void skb_set_dev(struct sk_buff *skb, struct net_device *dev)
|
|
-{
|
|
- skb_dst_drop(skb);
|
|
- if (skb->dev && !net_eq(dev_net(skb->dev), dev_net(dev))) {
|
|
- secpath_reset(skb);
|
|
- nf_reset(skb);
|
|
- skb_init_secmark(skb);
|
|
- skb->mark = 0;
|
|
- skb->priority = 0;
|
|
- skb->nf_trace = 0;
|
|
- skb->ipvs_property = 0;
|
|
-#ifdef CONFIG_NET_SCHED
|
|
- skb->tc_index = 0;
|
|
-#endif
|
|
- }
|
|
- skb->dev = dev;
|
|
-}
|
|
-EXPORT_SYMBOL(skb_set_dev);
|
|
-#endif /* CONFIG_NET_NS */
|
|
-
|
|
/*
|
|
* Invalidate hardware checksum when packet is to be mangled, and
|
|
* complete checksum manually on outgoing path.
|
|
--
|
|
1.7.9.5
|
|
|