Skip to content

Commit 59b9997

Browse files
committed
Revert "net: maintain namespace isolation between vlan and real device"
This reverts commit 8a83a00. 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 <[email protected]>
1 parent 380ec96 commit 59b9997

File tree

4 files changed

+7
-42
lines changed

4 files changed

+7
-42
lines changed

drivers/net/macvlan.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ static int macvlan_queue_xmit(struct sk_buff *skb, struct net_device *dev)
259259

260260
xmit_world:
261261
skb->ip_summed = ip_summed;
262-
skb_set_dev(skb, vlan->lowerdev);
262+
skb->dev = vlan->lowerdev;
263263
return dev_queue_xmit(skb);
264264
}
265265

include/linux/netdevice.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1403,15 +1403,6 @@ static inline bool netdev_uses_dsa_tags(struct net_device *dev)
14031403
return 0;
14041404
}
14051405

1406-
#ifndef CONFIG_NET_NS
1407-
static inline void skb_set_dev(struct sk_buff *skb, struct net_device *dev)
1408-
{
1409-
skb->dev = dev;
1410-
}
1411-
#else /* CONFIG_NET_NS */
1412-
void skb_set_dev(struct sk_buff *skb, struct net_device *dev);
1413-
#endif
1414-
14151406
static inline bool netdev_uses_trailer_tags(struct net_device *dev)
14161407
{
14171408
#ifdef CONFIG_NET_DSA_TAG_TRAILER

net/8021q/vlan_dev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ static netdev_tx_t vlan_dev_hard_start_xmit(struct sk_buff *skb,
157157
skb = __vlan_hwaccel_put_tag(skb, vlan_tci);
158158
}
159159

160-
skb_set_dev(skb, vlan_dev_priv(dev)->real_dev);
160+
skb->dev = vlan_dev_priv(dev)->real_dev;
161161
len = skb->len;
162162
if (netpoll_tx_running(dev))
163163
return skb->dev->netdev_ops->ndo_start_xmit(skb, skb->dev);

net/core/dev.c

Lines changed: 5 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1617,10 +1617,14 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
16171617
return NET_RX_DROP;
16181618
}
16191619
skb->skb_iif = 0;
1620-
skb_set_dev(skb, dev);
1620+
skb->dev = dev;
1621+
skb_dst_drop(skb);
16211622
skb->tstamp.tv64 = 0;
16221623
skb->pkt_type = PACKET_HOST;
16231624
skb->protocol = eth_type_trans(skb, dev);
1625+
skb->mark = 0;
1626+
secpath_reset(skb);
1627+
nf_reset(skb);
16241628
return netif_rx(skb);
16251629
}
16261630
EXPORT_SYMBOL_GPL(dev_forward_skb);
@@ -1869,36 +1873,6 @@ void netif_device_attach(struct net_device *dev)
18691873
}
18701874
EXPORT_SYMBOL(netif_device_attach);
18711875

1872-
/**
1873-
* skb_dev_set -- assign a new device to a buffer
1874-
* @skb: buffer for the new device
1875-
* @dev: network device
1876-
*
1877-
* If an skb is owned by a device already, we have to reset
1878-
* all data private to the namespace a device belongs to
1879-
* before assigning it a new device.
1880-
*/
1881-
#ifdef CONFIG_NET_NS
1882-
void skb_set_dev(struct sk_buff *skb, struct net_device *dev)
1883-
{
1884-
skb_dst_drop(skb);
1885-
if (skb->dev && !net_eq(dev_net(skb->dev), dev_net(dev))) {
1886-
secpath_reset(skb);
1887-
nf_reset(skb);
1888-
skb_init_secmark(skb);
1889-
skb->mark = 0;
1890-
skb->priority = 0;
1891-
skb->nf_trace = 0;
1892-
skb->ipvs_property = 0;
1893-
#ifdef CONFIG_NET_SCHED
1894-
skb->tc_index = 0;
1895-
#endif
1896-
}
1897-
skb->dev = dev;
1898-
}
1899-
EXPORT_SYMBOL(skb_set_dev);
1900-
#endif /* CONFIG_NET_NS */
1901-
19021876
static void skb_warn_bad_offload(const struct sk_buff *skb)
19031877
{
19041878
static const netdev_features_t null_features = 0;

0 commit comments

Comments
 (0)