net: skb->dst accessors
Define three accessors to get/set dst attached to a skb struct dst_entry *skb_dst(const struct sk_buff *skb) void skb_dst_set(struct sk_buff *skb, struct dst_entry *dst) void skb_dst_drop(struct sk_buff *skb) This one should replace occurrences of : dst_release(skb->dst) skb->dst = NULL; Delete skb->dst field Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
511c3f92ad
commit
adf30907d6
83 changed files with 414 additions and 390 deletions
|
@ -575,8 +575,7 @@ static int ipip6_rcv(struct sk_buff *skb)
|
|||
tunnel->dev->stats.rx_packets++;
|
||||
tunnel->dev->stats.rx_bytes += skb->len;
|
||||
skb->dev = tunnel->dev;
|
||||
dst_release(skb->dst);
|
||||
skb->dst = NULL;
|
||||
skb_dst_drop(skb);
|
||||
nf_reset(skb);
|
||||
ipip6_ecn_decapsulate(iph, skb);
|
||||
netif_rx(skb);
|
||||
|
@ -638,8 +637,8 @@ static int ipip6_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
if (dev->priv_flags & IFF_ISATAP) {
|
||||
struct neighbour *neigh = NULL;
|
||||
|
||||
if (skb->dst)
|
||||
neigh = skb->dst->neighbour;
|
||||
if (skb_dst(skb))
|
||||
neigh = skb_dst(skb)->neighbour;
|
||||
|
||||
if (neigh == NULL) {
|
||||
if (net_ratelimit())
|
||||
|
@ -663,8 +662,8 @@ static int ipip6_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
if (!dst) {
|
||||
struct neighbour *neigh = NULL;
|
||||
|
||||
if (skb->dst)
|
||||
neigh = skb->dst->neighbour;
|
||||
if (skb_dst(skb))
|
||||
neigh = skb_dst(skb)->neighbour;
|
||||
|
||||
if (neigh == NULL) {
|
||||
if (net_ratelimit())
|
||||
|
@ -714,7 +713,7 @@ static int ipip6_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
if (tiph->frag_off)
|
||||
mtu = dst_mtu(&rt->u.dst) - sizeof(struct iphdr);
|
||||
else
|
||||
mtu = skb->dst ? dst_mtu(skb->dst) : dev->mtu;
|
||||
mtu = skb_dst(skb) ? dst_mtu(skb_dst(skb)) : dev->mtu;
|
||||
|
||||
if (mtu < 68) {
|
||||
stats->collisions++;
|
||||
|
@ -723,8 +722,8 @@ static int ipip6_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
}
|
||||
if (mtu < IPV6_MIN_MTU)
|
||||
mtu = IPV6_MIN_MTU;
|
||||
if (tunnel->parms.iph.daddr && skb->dst)
|
||||
skb->dst->ops->update_pmtu(skb->dst, mtu);
|
||||
if (tunnel->parms.iph.daddr && skb_dst(skb))
|
||||
skb_dst(skb)->ops->update_pmtu(skb_dst(skb), mtu);
|
||||
|
||||
if (skb->len > mtu) {
|
||||
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, dev);
|
||||
|
@ -768,8 +767,8 @@ static int ipip6_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
skb_reset_network_header(skb);
|
||||
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
|
||||
IPCB(skb)->flags = 0;
|
||||
dst_release(skb->dst);
|
||||
skb->dst = &rt->u.dst;
|
||||
skb_dst_drop(skb);
|
||||
skb_dst_set(skb, &rt->u.dst);
|
||||
|
||||
/*
|
||||
* Push down and install the IPIP header.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue