Revert "netfilter: xt_qtaguid: fix crash on non-full sks"
[firefly-linux-kernel-4.4.55.git] / net / netfilter / xt_qtaguid_internal.h
index d79f8383abf4b154896bbfb8f8c168fe872b9310..6dc14a9c688966addc6ef949209fa70a70d00024 100644 (file)
@@ -179,6 +179,25 @@ struct data_counters {
        struct byte_packet_counters bpc[IFS_MAX_COUNTER_SETS][IFS_MAX_DIRECTIONS][IFS_MAX_PROTOS];
 };
 
+static inline uint64_t dc_sum_bytes(struct data_counters *counters,
+                                   int set,
+                                   enum ifs_tx_rx direction)
+{
+       return counters->bpc[set][direction][IFS_TCP].bytes
+               + counters->bpc[set][direction][IFS_UDP].bytes
+               + counters->bpc[set][direction][IFS_PROTO_OTHER].bytes;
+}
+
+static inline uint64_t dc_sum_packets(struct data_counters *counters,
+                                     int set,
+                                     enum ifs_tx_rx direction)
+{
+       return counters->bpc[set][direction][IFS_TCP].packets
+               + counters->bpc[set][direction][IFS_UDP].packets
+               + counters->bpc[set][direction][IFS_PROTO_OTHER].packets;
+}
+
+
 /* Generic X based nodes used as a base for rb_tree ops */
 struct tag_node {
        struct rb_node node;
@@ -203,7 +222,7 @@ struct iface_stat {
        struct net_device *net_dev;
 
        struct byte_packet_counters totals_via_dev[IFS_MAX_DIRECTIONS];
-       struct byte_packet_counters totals_via_skb[IFS_MAX_DIRECTIONS];
+       struct data_counters totals_via_skb;
        /*
         * We keep the last_known, because some devices reset their counters
         * just before NETDEV_UP, while some will reset just before