tty: n_gsm: Use net_device_stats from struct net_device
authorTobias Klauser <tklauser@distanz.ch>
Mon, 13 Mar 2017 11:00:50 +0000 (12:00 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2017 05:14:00 +0000 (14:14 +0900)
Instead of using a private copy of struct net_device_stats in struct
gsm_mux_net, use stats from struct net_device. Also remove
the now unnecessary .ndo_get_stats function.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/n_gsm.c

index 55577cf9b6a4e0eba43462bba0bd5b5039172f17..2667a205a5abcf47ed4ab059ff350b5f35ea3fe1 100644 (file)
@@ -89,18 +89,14 @@ module_param(debug, int, 0600);
 /**
  *     struct gsm_mux_net      -       network interface
  *     @struct gsm_dlci* dlci
- *     @struct net_device_stats stats;
  *
  *     Created when net interface is initialized.
  **/
 struct gsm_mux_net {
        struct kref ref;
        struct gsm_dlci *dlci;
-       struct net_device_stats stats;
 };
 
-#define STATS(net) (((struct gsm_mux_net *)netdev_priv(net))->stats)
-
 /*
  *     Each block of data we have queued to go out is in the form of
  *     a gsm_msg which holds everything we need in a link layer independent
@@ -2613,10 +2609,6 @@ static int gsm_mux_net_close(struct net_device *net)
        return 0;
 }
 
-static struct net_device_stats *gsm_mux_net_get_stats(struct net_device *net)
-{
-       return &((struct gsm_mux_net *)netdev_priv(net))->stats;
-}
 static void dlci_net_free(struct gsm_dlci *dlci)
 {
        if (!dlci->net) {
@@ -2660,8 +2652,8 @@ static int gsm_mux_net_start_xmit(struct sk_buff *skb,
        muxnet_get(mux_net);
 
        skb_queue_head(&dlci->skb_list, skb);
-       STATS(net).tx_packets++;
-       STATS(net).tx_bytes += skb->len;
+       net->stats.tx_packets++;
+       net->stats.tx_bytes += skb->len;
        gsm_dlci_data_kick(dlci);
        /* And tell the kernel when the last transmit started. */
        netif_trans_update(net);
@@ -2676,7 +2668,7 @@ static void gsm_mux_net_tx_timeout(struct net_device *net)
        dev_dbg(&net->dev, "Tx timed out.\n");
 
        /* Update statistics */
-       STATS(net).tx_errors++;
+       net->stats.tx_errors++;
 }
 
 static void gsm_mux_rx_netchar(struct gsm_dlci *dlci,
@@ -2691,7 +2683,7 @@ static void gsm_mux_rx_netchar(struct gsm_dlci *dlci,
        skb = dev_alloc_skb(size + NET_IP_ALIGN);
        if (!skb) {
                /* We got no receive buffer. */
-               STATS(net).rx_dropped++;
+               net->stats.rx_dropped++;
                muxnet_put(mux_net);
                return;
        }
@@ -2705,8 +2697,8 @@ static void gsm_mux_rx_netchar(struct gsm_dlci *dlci,
        netif_rx(skb);
 
        /* update out statistics */
-       STATS(net).rx_packets++;
-       STATS(net).rx_bytes += size;
+       net->stats.rx_packets++;
+       net->stats.rx_bytes += size;
        muxnet_put(mux_net);
        return;
 }
@@ -2718,7 +2710,6 @@ static void gsm_mux_net_init(struct net_device *net)
                .ndo_stop               = gsm_mux_net_close,
                .ndo_start_xmit         = gsm_mux_net_start_xmit,
                .ndo_tx_timeout         = gsm_mux_net_tx_timeout,
-               .ndo_get_stats          = gsm_mux_net_get_stats,
        };
 
        net->netdev_ops = &gsm_netdev_ops;