Browse Source

tty: n_gsm: Use net_device_stats from struct net_device

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>
Tobias Klauser 8 years ago
parent
commit
47baf1ad81
1 changed files with 6 additions and 15 deletions
  1. 6 15
      drivers/tty/n_gsm.c

+ 6 - 15
drivers/tty/n_gsm.c

@@ -89,18 +89,14 @@ module_param(debug, int, 0600);
 /**
 /**
  *	struct gsm_mux_net	-	network interface
  *	struct gsm_mux_net	-	network interface
  *	@struct gsm_dlci* dlci
  *	@struct gsm_dlci* dlci
- *	@struct net_device_stats stats;
  *
  *
  *	Created when net interface is initialized.
  *	Created when net interface is initialized.
  **/
  **/
 struct gsm_mux_net {
 struct gsm_mux_net {
 	struct kref ref;
 	struct kref ref;
 	struct gsm_dlci *dlci;
 	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
  *	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
  *	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;
 	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)
 static void dlci_net_free(struct gsm_dlci *dlci)
 {
 {
 	if (!dlci->net) {
 	if (!dlci->net) {
@@ -2660,8 +2652,8 @@ static int gsm_mux_net_start_xmit(struct sk_buff *skb,
 	muxnet_get(mux_net);
 	muxnet_get(mux_net);
 
 
 	skb_queue_head(&dlci->skb_list, skb);
 	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);
 	gsm_dlci_data_kick(dlci);
 	/* And tell the kernel when the last transmit started. */
 	/* And tell the kernel when the last transmit started. */
 	netif_trans_update(net);
 	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");
 	dev_dbg(&net->dev, "Tx timed out.\n");
 
 
 	/* Update statistics */
 	/* Update statistics */
-	STATS(net).tx_errors++;
+	net->stats.tx_errors++;
 }
 }
 
 
 static void gsm_mux_rx_netchar(struct gsm_dlci *dlci,
 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);
 	skb = dev_alloc_skb(size + NET_IP_ALIGN);
 	if (!skb) {
 	if (!skb) {
 		/* We got no receive buffer. */
 		/* We got no receive buffer. */
-		STATS(net).rx_dropped++;
+		net->stats.rx_dropped++;
 		muxnet_put(mux_net);
 		muxnet_put(mux_net);
 		return;
 		return;
 	}
 	}
@@ -2705,8 +2697,8 @@ static void gsm_mux_rx_netchar(struct gsm_dlci *dlci,
 	netif_rx(skb);
 	netif_rx(skb);
 
 
 	/* update out statistics */
 	/* 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);
 	muxnet_put(mux_net);
 	return;
 	return;
 }
 }
@@ -2718,7 +2710,6 @@ static void gsm_mux_net_init(struct net_device *net)
 		.ndo_stop		= gsm_mux_net_close,
 		.ndo_stop		= gsm_mux_net_close,
 		.ndo_start_xmit		= gsm_mux_net_start_xmit,
 		.ndo_start_xmit		= gsm_mux_net_start_xmit,
 		.ndo_tx_timeout		= gsm_mux_net_tx_timeout,
 		.ndo_tx_timeout		= gsm_mux_net_tx_timeout,
-		.ndo_get_stats		= gsm_mux_net_get_stats,
 	};
 	};
 
 
 	net->netdev_ops = &gsm_netdev_ops;
 	net->netdev_ops = &gsm_netdev_ops;