net: convert __IPTUNNEL_XMIT() to an inline function
__IPTUNNEL_XMIT() is an ugly macro, convert it to a static inline function, so make it more readable. IPTUNNEL_XMIT() is unused, just remove it. Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
bf0098f22c
commit
aa0010f880
@@ -48,25 +48,27 @@ struct ip_tunnel_prl_entry {
|
||||
struct rcu_head rcu_head;
|
||||
};
|
||||
|
||||
#define __IPTUNNEL_XMIT(stats1, stats2) do { \
|
||||
int err; \
|
||||
int pkt_len = skb->len - skb_transport_offset(skb); \
|
||||
\
|
||||
skb->ip_summed = CHECKSUM_NONE; \
|
||||
ip_select_ident(iph, &rt->dst, NULL); \
|
||||
\
|
||||
err = ip_local_out(skb); \
|
||||
if (likely(net_xmit_eval(err) == 0)) { \
|
||||
u64_stats_update_begin(&(stats1)->syncp); \
|
||||
(stats1)->tx_bytes += pkt_len; \
|
||||
(stats1)->tx_packets++; \
|
||||
u64_stats_update_end(&(stats1)->syncp); \
|
||||
} else { \
|
||||
(stats2)->tx_errors++; \
|
||||
(stats2)->tx_aborted_errors++; \
|
||||
} \
|
||||
} while (0)
|
||||
static inline void iptunnel_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
int err;
|
||||
struct iphdr *iph = ip_hdr(skb);
|
||||
int pkt_len = skb->len - skb_transport_offset(skb);
|
||||
struct pcpu_tstats *tstats = this_cpu_ptr(dev->tstats);
|
||||
|
||||
#define IPTUNNEL_XMIT() __IPTUNNEL_XMIT(txq, stats)
|
||||
nf_reset(skb);
|
||||
skb->ip_summed = CHECKSUM_NONE;
|
||||
ip_select_ident(iph, skb_dst(skb), NULL);
|
||||
|
||||
err = ip_local_out(skb);
|
||||
if (likely(net_xmit_eval(err) == 0)) {
|
||||
u64_stats_update_begin(&tstats->syncp);
|
||||
tstats->tx_bytes += pkt_len;
|
||||
tstats->tx_packets++;
|
||||
u64_stats_update_end(&tstats->syncp);
|
||||
} else {
|
||||
dev->stats.tx_errors++;
|
||||
dev->stats.tx_aborted_errors++;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user