All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <shemminger@vyatta.com>
To: David Miller <davem@davemloft.net>,
	Grant Grundler <grundler@parisc-linux.org>,
	Kyle McMartin <kyle@mcmartin.ca>
Cc: netdev@vger.kernel.org
Subject: [PATCH 27/42] xircom: convert devices to new API
Date: Tue, 06 Jan 2009 16:33:43 -0800	[thread overview]
Message-ID: <20090107003348.412679318@vyatta.com> (raw)
In-Reply-To: 20090107003316.784424362@vyatta.com

[-- Attachment #1: tulip-xircom.patch --]
[-- Type: text/plain, Size: 3528 bytes --]

Convert to net_device_ops and internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/drivers/net/tulip/xircom_cb.c	2009-01-06 16:22:21.996610716 -0800
+++ b/drivers/net/tulip/xircom_cb.c	2009-01-06 16:26:51.124360713 -0800
@@ -104,10 +104,8 @@ struct xircom_private {
 	 */
 	spinlock_t lock;
 
-
 	struct pci_dev *pdev;
 	struct net_device *dev;
-	struct net_device_stats stats;
 };
 
 
@@ -119,7 +117,6 @@ static int xircom_start_xmit(struct sk_b
 static int xircom_open(struct net_device *dev);
 static int xircom_close(struct net_device *dev);
 static void xircom_up(struct xircom_private *card);
-static struct net_device_stats *xircom_get_stats(struct net_device *dev);
 #ifdef CONFIG_NET_POLL_CONTROLLER
 static void xircom_poll_controller(struct net_device *dev);
 #endif
@@ -194,6 +191,18 @@ static const struct ethtool_ops netdev_e
 	.get_drvinfo		= netdev_get_drvinfo,
 };
 
+static const struct net_device_ops netdev_ops = {
+	.ndo_open		= xircom_open,
+	.ndo_stop		= xircom_close,
+	.ndo_start_xmit		= xircom_start_xmit,
+	.ndo_change_mtu		= eth_change_mtu,
+	.ndo_set_mac_address	= eth_mac_addr,
+	.ndo_validate_addr	= eth_validate_addr,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+	.ndo_poll_controller	= xircom_poll_controller,
+#endif
+};
+
 /* xircom_probe is the code that gets called on device insertion.
    it sets up the hardware and registers the device to the networklayer.
 
@@ -266,13 +275,7 @@ static int __devinit xircom_probe(struct
 	read_mac_address(private);
 	setup_descriptors(private);
 
-	dev->open = &xircom_open;
-	dev->hard_start_xmit = &xircom_start_xmit;
-	dev->stop = &xircom_close;
-	dev->get_stats = &xircom_get_stats;
-#ifdef CONFIG_NET_POLL_CONTROLLER
-	dev->poll_controller = &xircom_poll_controller;
-#endif
+	dev->netdev_ops = &netdev_ops;
 	SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops);
 	pci_set_drvdata(pdev, dev);
 
@@ -497,14 +500,6 @@ static int xircom_close(struct net_devic
 }
 
 
-
-static struct net_device_stats *xircom_get_stats(struct net_device *dev)
-{
-        struct xircom_private *card = netdev_priv(dev);
-        return &card->stats;
-}
-
-
 #ifdef CONFIG_NET_POLL_CONTROLLER
 static void xircom_poll_controller(struct net_device *dev)
 {
@@ -1193,7 +1188,7 @@ static void investigate_read_descriptor(
 
 			skb = dev_alloc_skb(pkt_len + 2);
 			if (skb == NULL) {
-				card->stats.rx_dropped++;
+				dev->stats.rx_dropped++;
 				goto out;
 			}
 			skb_reserve(skb, 2);
@@ -1201,8 +1196,8 @@ static void investigate_read_descriptor(
 			skb_put(skb, pkt_len);
 			skb->protocol = eth_type_trans(skb, dev);
 			netif_rx(skb);
-			card->stats.rx_packets++;
-			card->stats.rx_bytes += pkt_len;
+			dev->stats.rx_packets++;
+			dev->stats.rx_bytes += pkt_len;
 
 		      out:
 			/* give the buffer back to the card */
@@ -1232,16 +1227,16 @@ static void investigate_write_descriptor
 #endif
 		if (status > 0) {	/* bit 31 is 0 when done */
 			if (card->tx_skb[descnr]!=NULL) {
-				card->stats.tx_bytes += card->tx_skb[descnr]->len;
+				dev->stats.tx_bytes += card->tx_skb[descnr]->len;
 				dev_kfree_skb_irq(card->tx_skb[descnr]);
 			}
 			card->tx_skb[descnr] = NULL;
 			/* Bit 8 in the status field is 1 if there was a collision */
 			if (status&(1<<8))
-				card->stats.collisions++;
+				dev->stats.collisions++;
 			card->tx_buffer[4*descnr] = 0; /* descriptor is free again */
 			netif_wake_queue (dev);
-			card->stats.tx_packets++;
+			dev->stats.tx_packets++;
 		}
 
 		leave("investigate_write_descriptor");

-- 


  parent reply	other threads:[~2009-01-07  0:59 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-07  0:33 [PATCH 00/42] Still more net_device API updates Stephen Hemminger
2009-01-07  0:33 ` [PATCH 01/42] appletalk: convert aarp to net_device_ops Stephen Hemminger
2009-01-08  1:21   ` David Miller
2009-01-08  3:09     ` Joe Perches
2009-01-08  4:39       ` David Miller
2009-01-07  0:33 ` [PATCH 02/42] appletalk: convert ipddp " Stephen Hemminger
2009-01-08  1:22   ` David Miller
2009-01-07  0:33 ` [PATCH 03/42] bluetooth: driver API update Stephen Hemminger
2009-01-07  0:33   ` Stephen Hemminger
2009-01-07  1:53   ` Marcel Holtmann
2009-01-07  1:53     ` Marcel Holtmann
2009-01-08  1:23     ` David Miller
2009-01-08  1:23       ` David Miller
2009-01-07  0:33 ` [PATCH 05/42] cassini: update to net_device_ops Stephen Hemminger
2009-01-08  1:25   ` David Miller
2009-01-07  0:33 ` [PATCH 06/42] ipg: " Stephen Hemminger
2009-01-07  7:59   ` Pekka Enberg
2009-01-08  1:26     ` David Miller
2009-01-07  0:33 ` [PATCH 07/42] plip: " Stephen Hemminger
2009-01-08  1:26   ` David Miller
2009-01-07  0:33 ` [PATCH 08/42] tlan: " Stephen Hemminger
2009-01-08  1:27   ` David Miller
2009-01-07  0:33 ` [PATCH 09/42] epic100: " Stephen Hemminger
2009-01-08  1:27   ` David Miller
2009-01-07  0:33 ` [PATCH 10/42] sunhme: " Stephen Hemminger
2009-01-08  1:28   ` David Miller
2009-01-07  0:33 ` [PATCH 11/42] sungem: " Stephen Hemminger
2009-01-08  1:29   ` David Miller
2009-01-07  0:33 ` [PATCH 12/42] pcnet32: " Stephen Hemminger
2009-01-08  1:29   ` David Miller
2009-01-07  0:33 ` [PATCH 13/42] typhoon: " Stephen Hemminger
2009-01-08  1:29   ` David Miller
2009-01-07  0:33 ` [PATCH 14/42] enc28j60: " Stephen Hemminger
2009-01-08  1:30   ` David Miller
2009-01-07  0:33 ` [PATCH 16/42] de600: " Stephen Hemminger
2009-01-08  1:35   ` David Miller
2009-01-08  1:48     ` [PATCH 15/42] hp100: " Stephen Hemminger
2009-01-08  2:13       ` David Miller
2009-01-07  0:33 ` [PATCH 17/42] sis190: " Stephen Hemminger
2009-01-08  1:35   ` David Miller
2009-01-07  0:33 ` [PATCH 18/42] ns83820: fix net_device_ops support Stephen Hemminger
2009-01-08  1:36   ` David Miller
2009-01-07  0:33 ` [PATCH 19/42] sb1000: update to net_device_ops Stephen Hemminger
2009-01-08  1:57   ` David Miller
2009-01-07  0:33 ` [PATCH 20/42] natsemi: " Stephen Hemminger
2009-01-08  1:57   ` David Miller
2009-01-07  0:33 ` [PATCH 21/42] fealnx: " Stephen Hemminger
2009-01-08  1:57   ` David Miller
2009-01-07  0:33 ` [PATCH 22/42] starfire: " Stephen Hemminger
2009-01-08  1:58   ` David Miller
2009-01-07  0:33 ` [PATCH 23/42] sundance: " Stephen Hemminger
2009-01-08  1:58   ` David Miller
2009-01-07  0:33 ` [PATCH 24/42] tulip: convert devices to new API Stephen Hemminger
2009-01-07  7:49   ` Grant Grundler
2009-01-08  1:59     ` David Miller
2009-01-07  0:33 ` [PATCH 25/42] de2104x: convert to net_device_ops Stephen Hemminger
2009-01-07  7:50   ` Grant Grundler
2009-01-08  1:59   ` David Miller
2009-01-07  0:33 ` [PATCH 26/42] de4x5: " Stephen Hemminger
2009-01-08  2:00   ` David Miller
2009-01-07  0:33 ` Stephen Hemminger [this message]
2009-01-08  2:01   ` [PATCH 27/42] xircom: convert devices to new API David Miller
2009-01-07  0:33 ` [PATCH 28/42] dmfe: convert " Stephen Hemminger
2009-01-08 21:16   ` Grant Grundler
2009-01-08 21:32     ` David Miller
2009-01-07  0:33 ` [PATCH 29/42] uli526x: convert devices " Stephen Hemminger
2009-01-08  2:01   ` David Miller
2009-01-07  0:33 ` [PATCH 30/42] windbond: " Stephen Hemminger
2009-01-08  2:02   ` David Miller
2009-01-07  0:33 ` [PATCH 31/42] dvb: update network device to current API Stephen Hemminger
2009-01-08  2:02   ` David Miller
2009-01-07  0:33 ` [PATCH 32/42] hysdn: convert to net_device_ops and other updates Stephen Hemminger
2009-01-08  2:03   ` David Miller
2009-01-07  0:33 ` [PATCH 33/42] I4l: convert to net_device_ops Stephen Hemminger
2009-01-07  0:33 ` [PATCH 34/42] fusion: convert devices to new API Stephen Hemminger
2009-01-08  2:04   ` David Miller
2009-01-07  0:33 ` [PATCH 35/42] xpnet: " Stephen Hemminger
2009-01-08  2:05   ` David Miller
2009-01-07  0:33 ` [PATCH 36/42] gadget: " Stephen Hemminger
2009-01-08  2:05   ` David Miller
2009-01-07  0:33 ` [PATCH 37/42] synclink: " Stephen Hemminger
2009-01-07 23:48   ` [PATCH 37/42] synclink: convert devices to new API (rev2) Stephen Hemminger
2009-01-08  2:08     ` David Miller
2009-01-08 22:49       ` Krzysztof Halasa
2009-01-08 22:55         ` Krzysztof Halasa
2009-01-13  0:18         ` David Miller
2009-01-07  0:33 ` [PATCH 38/42] uwb: convert devices to net_device_ops Stephen Hemminger
2009-01-07 10:38   ` David Vrabel
2009-01-08  2:09     ` David Miller
2009-01-07  0:33 ` [PATCH 39/42] slip: convert " Stephen Hemminger
2009-01-08  2:09   ` David Miller
2009-01-07  0:33 ` [PATCH 40/42] amd8111e: " Stephen Hemminger
2009-01-08  2:10   ` David Miller
2009-01-07  0:33 ` [PATCH 41/42] atp: " Stephen Hemminger
2009-01-08  2:10   ` David Miller
2009-01-07  0:33 ` [PATCH 42/42] b44: " Stephen Hemminger
2009-01-08  2:10   ` David Miller
     [not found] ` <20090107003345.872219054@vyatta.com>
2009-01-08  1:25   ` [PATCH 04/42] phonet: update " David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090107003348.412679318@vyatta.com \
    --to=shemminger@vyatta.com \
    --cc=davem@davemloft.net \
    --cc=grundler@parisc-linux.org \
    --cc=kyle@mcmartin.ca \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.