mirror of https://gitee.com/openkylin/linux.git
net: eth: cpsw: Use net_device_stats from struct net_device
Instead of using an own copy of struct net_device_stats in struct cpsw_priv, use stats from struct net_device. Also remove the thus unnecessary .ndo_get_stats function, as it just returns dev->stats, which is the default. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Acked-by: Mugunthan V N <mugunthanvnm@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d32d9bb85c
commit
8dc43ddc9f
|
@ -378,7 +378,6 @@ struct cpsw_priv {
|
|||
u32 version;
|
||||
u32 coal_intvl;
|
||||
u32 bus_freq_mhz;
|
||||
struct net_device_stats stats;
|
||||
int rx_packet_max;
|
||||
int host_port;
|
||||
struct clk *clk;
|
||||
|
@ -673,8 +672,8 @@ static void cpsw_tx_handler(void *token, int len, int status)
|
|||
if (unlikely(netif_queue_stopped(ndev)))
|
||||
netif_wake_queue(ndev);
|
||||
cpts_tx_timestamp(priv->cpts, skb);
|
||||
priv->stats.tx_packets++;
|
||||
priv->stats.tx_bytes += len;
|
||||
ndev->stats.tx_packets++;
|
||||
ndev->stats.tx_bytes += len;
|
||||
dev_kfree_skb_any(skb);
|
||||
}
|
||||
|
||||
|
@ -700,10 +699,10 @@ static void cpsw_rx_handler(void *token, int len, int status)
|
|||
cpts_rx_timestamp(priv->cpts, skb);
|
||||
skb->protocol = eth_type_trans(skb, ndev);
|
||||
netif_receive_skb(skb);
|
||||
priv->stats.rx_bytes += len;
|
||||
priv->stats.rx_packets++;
|
||||
ndev->stats.rx_bytes += len;
|
||||
ndev->stats.rx_packets++;
|
||||
} else {
|
||||
priv->stats.rx_dropped++;
|
||||
ndev->stats.rx_dropped++;
|
||||
new_skb = skb;
|
||||
}
|
||||
|
||||
|
@ -1313,7 +1312,7 @@ static netdev_tx_t cpsw_ndo_start_xmit(struct sk_buff *skb,
|
|||
|
||||
if (skb_padto(skb, CPSW_MIN_PACKET_SIZE)) {
|
||||
cpsw_err(priv, tx_err, "packet pad failed\n");
|
||||
priv->stats.tx_dropped++;
|
||||
ndev->stats.tx_dropped++;
|
||||
return NETDEV_TX_OK;
|
||||
}
|
||||
|
||||
|
@ -1337,7 +1336,7 @@ static netdev_tx_t cpsw_ndo_start_xmit(struct sk_buff *skb,
|
|||
|
||||
return NETDEV_TX_OK;
|
||||
fail:
|
||||
priv->stats.tx_dropped++;
|
||||
ndev->stats.tx_dropped++;
|
||||
netif_stop_queue(ndev);
|
||||
return NETDEV_TX_BUSY;
|
||||
}
|
||||
|
@ -1501,7 +1500,7 @@ static void cpsw_ndo_tx_timeout(struct net_device *ndev)
|
|||
struct cpsw_priv *priv = netdev_priv(ndev);
|
||||
|
||||
cpsw_err(priv, tx_err, "transmit timeout, restarting dma\n");
|
||||
priv->stats.tx_errors++;
|
||||
ndev->stats.tx_errors++;
|
||||
cpsw_intr_disable(priv);
|
||||
cpdma_ctlr_int_ctrl(priv->dma, false);
|
||||
cpdma_chan_stop(priv->txch);
|
||||
|
@ -1540,12 +1539,6 @@ static int cpsw_ndo_set_mac_address(struct net_device *ndev, void *p)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct net_device_stats *cpsw_ndo_get_stats(struct net_device *ndev)
|
||||
{
|
||||
struct cpsw_priv *priv = netdev_priv(ndev);
|
||||
return &priv->stats;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
static void cpsw_ndo_poll_controller(struct net_device *ndev)
|
||||
{
|
||||
|
@ -1638,7 +1631,6 @@ static const struct net_device_ops cpsw_netdev_ops = {
|
|||
.ndo_validate_addr = eth_validate_addr,
|
||||
.ndo_change_mtu = eth_change_mtu,
|
||||
.ndo_tx_timeout = cpsw_ndo_tx_timeout,
|
||||
.ndo_get_stats = cpsw_ndo_get_stats,
|
||||
.ndo_set_rx_mode = cpsw_ndo_set_rx_mode,
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
.ndo_poll_controller = cpsw_ndo_poll_controller,
|
||||
|
|
Loading…
Reference in New Issue