u64 rx_bytes;
u64 tx_bytes;
u64 rx_dropped;
- u64 tx_dropped;
struct u64_stats_sync syncp;
};
stats = this_cpu_ptr(priv->stats);
rcv_stats = this_cpu_ptr(rcv_priv->stats);
- if (!(rcv->flags & IFF_UP))
- goto tx_drop;
-
/* don't change ip_summed == CHECKSUM_PARTIAL, as that
will cause bad checksum on forwarded packets */
if (skb->ip_summed == CHECKSUM_NONE &&
return NETDEV_TX_OK;
-tx_drop:
- kfree_skb(skb);
- u64_stats_update_begin(&stats->syncp);
- stats->tx_dropped++;
- u64_stats_update_end(&stats->syncp);
- return NETDEV_TX_OK;
-
rx_drop:
u64_stats_update_begin(&rcv_stats->syncp);
rcv_stats->rx_dropped++;
for_each_possible_cpu(cpu) {
struct veth_net_stats *stats = per_cpu_ptr(priv->stats, cpu);
u64 rx_packets, rx_bytes, rx_dropped;
- u64 tx_packets, tx_bytes, tx_dropped;
+ u64 tx_packets, tx_bytes;
unsigned int start;
do {
rx_bytes = stats->rx_bytes;
tx_bytes = stats->tx_bytes;
rx_dropped = stats->rx_dropped;
- tx_dropped = stats->tx_dropped;
} while (u64_stats_fetch_retry_bh(&stats->syncp, start));
tot->rx_packets += rx_packets;
tot->tx_packets += tx_packets;
tot->rx_bytes += rx_bytes;
tot->tx_bytes += tx_bytes;
tot->rx_dropped += rx_dropped;
- tot->tx_dropped += tx_dropped;
}
return tot;