From patchwork Sun Dec 21 01:12:54 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Halasa X-Patchwork-Id: 15088 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id C07E7DDEDA for ; Sun, 21 Dec 2008 12:13:11 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752784AbYLUBNH (ORCPT ); Sat, 20 Dec 2008 20:13:07 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752664AbYLUBNF (ORCPT ); Sat, 20 Dec 2008 20:13:05 -0500 Received: from khc.piap.pl ([195.187.100.11]:48651 "EHLO khc.piap.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752068AbYLUBNE (ORCPT ); Sat, 20 Dec 2008 20:13:04 -0500 Received: by khc.piap.pl (Postfix, from userid 500) id 73C5170013; Sun, 21 Dec 2008 02:12:54 +0100 (CET) To: Subject: Re: [RFC] IXP4xx: Make the Ethernet driver use built-in netdev stats. References: From: Krzysztof Halasa Date: Sun, 21 Dec 2008 02:12:54 +0100 In-Reply-To: (Krzysztof Halasa's message of "Sun\, 21 Dec 2008 02\:11\:10 +0100") Message-ID: MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Few patches I'm posting for review only. Not for operational use. IXP4xx: Make the Ethernet driver use built-in netdev stats. --- a/drivers/net/arm/ixp4xx_eth.c +++ b/drivers/net/arm/ixp4xx_eth.c @@ -164,7 +164,6 @@ struct port { struct npe *npe; struct net_device *netdev; struct napi_struct napi; - struct net_device_stats stat; struct mii_if_info mii; struct delayed_work mdio_thread; struct eth_plat_info *plat; @@ -562,7 +561,7 @@ static int eth_poll(struct napi_struct *napi, int budget) #endif if (!skb) { - port->stat.rx_dropped++; + dev->stats.rx_dropped++; /* put the desc back on RX-ready queue */ desc->buf_len = MAX_MRU; desc->pkt_len = 0; @@ -589,8 +588,8 @@ static int eth_poll(struct napi_struct *napi, int budget) skb->protocol = eth_type_trans(skb, dev); dev->last_rx = jiffies; - port->stat.rx_packets++; - port->stat.rx_bytes += skb->len; + dev->stats.rx_packets++; + dev->stats.rx_bytes += skb->len; netif_receive_skb(skb); /* put the new buffer on RX-free queue */ @@ -635,8 +634,8 @@ static void eth_txdone_irq(void *unused) debug_desc(phys, desc); if (port->tx_buff_tab[n_desc]) { /* not the draining packet */ - port->stat.tx_packets++; - port->stat.tx_bytes += desc->pkt_len; + port->netdev->stats.tx_packets++; + port->netdev->stats.tx_bytes += desc->pkt_len; dma_unmap_tx(port, desc); #if DEBUG_TX @@ -674,7 +673,7 @@ static int eth_xmit(struct sk_buff *skb, struct net_device *dev) if (unlikely(skb->len > MAX_MRU)) { dev_kfree_skb(skb); - port->stat.tx_errors++; + dev->stats.tx_errors++; return NETDEV_TX_OK; } @@ -690,7 +689,7 @@ static int eth_xmit(struct sk_buff *skb, struct net_device *dev) bytes = ALIGN(offset + len, 4); if (!(mem = kmalloc(bytes, GFP_ATOMIC))) { dev_kfree_skb(skb); - port->stat.tx_dropped++; + dev->stats.tx_dropped++; return NETDEV_TX_OK; } memcpy_swab32(mem, (u32 *)((int)skb->data & ~3), bytes / 4); @@ -704,7 +703,7 @@ static int eth_xmit(struct sk_buff *skb, struct net_device *dev) #else kfree(mem); #endif - port->stat.tx_dropped++; + dev->stats.tx_dropped++; return NETDEV_TX_OK; } @@ -747,12 +746,6 @@ static int eth_xmit(struct sk_buff *skb, struct net_device *dev) } -static struct net_device_stats *eth_stats(struct net_device *dev) -{ - struct port *port = netdev_priv(dev); - return &port->stat; -} - static void eth_set_mcast_list(struct net_device *dev) { struct port *port = netdev_priv(dev); @@ -1156,7 +1149,6 @@ static int __devinit eth_init_one(struct platform_device *pdev) dev->open = eth_open; dev->hard_start_xmit = eth_xmit; dev->stop = eth_close; - dev->get_stats = eth_stats; dev->do_ioctl = eth_ioctl; dev->set_multicast_list = eth_set_mcast_list; dev->tx_queue_len = 100;