public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Stephen Hemminger <shemminger@vyatta•com>
To: David Miller <davem@davemloft•net>
Cc: netdev@vger•kernel.org
Subject: [PATCH 35/42] xpnet: convert devices to new API
Date: Tue, 06 Jan 2009 16:33:51 -0800	[thread overview]
Message-ID: <20090107003349.257844151@vyatta.com> (raw)
In-Reply-To: 20090107003316.784424362@vyatta.com

[-- Attachment #1: xpnet.patch --]
[-- Type: text/plain, Size: 4671 bytes --]

Convert to net_device_ops and internal net_device_stats

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

--- a/drivers/misc/sgi-xp/xpnet.c	2009-01-03 22:31:54.138766578 -0800
+++ b/drivers/misc/sgi-xp/xpnet.c	2009-01-03 22:44:08.668261847 -0800
@@ -95,11 +95,6 @@ struct xpnet_pending_msg {
 	atomic_t use_count;
 };
 
-/* driver specific structure pointed to by the device structure */
-struct xpnet_dev_private {
-	struct net_device_stats stats;
-};
-
 struct net_device *xpnet_device;
 
 /*
@@ -153,7 +148,6 @@ xpnet_receive(short partid, int channel,
 	struct sk_buff *skb;
 	void *dst;
 	enum xp_retval ret;
-	struct xpnet_dev_private *priv = netdev_priv(xpnet_device);
 
 	if (!XPNET_VALID_MSG(msg)) {
 		/*
@@ -161,7 +155,7 @@ xpnet_receive(short partid, int channel,
 		 */
 		xpc_received(partid, channel, (void *)msg);
 
-		priv->stats.rx_errors++;
+		xpnet_device->stats.rx_errors++;
 
 		return;
 	}
@@ -176,7 +170,7 @@ xpnet_receive(short partid, int channel,
 
 		xpc_received(partid, channel, (void *)msg);
 
-		priv->stats.rx_errors++;
+		xpnet_device->stats.rx_errors++;
 
 		return;
 	}
@@ -226,7 +220,7 @@ xpnet_receive(short partid, int channel,
 
 			xpc_received(partid, channel, (void *)msg);
 
-			priv->stats.rx_errors++;
+			xpnet_device->stats.rx_errors++;
 
 			return;
 		}
@@ -247,8 +241,8 @@ xpnet_receive(short partid, int channel,
 		skb_end_pointer(skb), skb->len);
 
 	xpnet_device->last_rx = jiffies;
-	priv->stats.rx_packets++;
-	priv->stats.rx_bytes += skb->len + ETH_HLEN;
+	xpnet_device->stats.rx_packets++;
+	xpnet_device->stats.rx_bytes += skb->len + ETH_HLEN;
 
 	netif_rx_ni(skb);
 	xpc_received(partid, channel, (void *)msg);
@@ -353,26 +347,6 @@ xpnet_dev_change_mtu(struct net_device *
 }
 
 /*
- * Required for the net_device structure.
- */
-static int
-xpnet_dev_set_config(struct net_device *dev, struct ifmap *new_map)
-{
-	return 0;
-}
-
-/*
- * Return statistics to the caller.
- */
-static struct net_device_stats *
-xpnet_dev_get_stats(struct net_device *dev)
-{
-	struct xpnet_dev_private *priv = netdev_priv(dev);
-
-	return &priv->stats;
-}
-
-/*
  * Notification that the other end has received the message and
  * DMA'd the skb information.  At this point, they are done with
  * our side.  When all recipients are done processing, we
@@ -453,7 +427,6 @@ xpnet_dev_hard_start_xmit(struct sk_buff
 	struct xpnet_pending_msg *queued_msg;
 	u64 start_addr, end_addr;
 	short dest_partid;
-	struct xpnet_dev_private *priv = netdev_priv(dev);
 	u16 embedded_bytes = 0;
 
 	dev_dbg(xpnet, ">skb->head=0x%p skb->data=0x%p skb->tail=0x%p "
@@ -476,7 +449,7 @@ xpnet_dev_hard_start_xmit(struct sk_buff
 		dev_warn(xpnet, "failed to kmalloc %ld bytes; dropping "
 			 "packet\n", sizeof(struct xpnet_pending_msg));
 
-		priv->stats.tx_errors++;
+		dev->stats.tx_errors++;
 		return -ENOMEM;
 	}
 
@@ -526,8 +499,8 @@ xpnet_dev_hard_start_xmit(struct sk_buff
 		kfree(queued_msg);
 	}
 
-	priv->stats.tx_packets++;
-	priv->stats.tx_bytes += skb->len;
+	dev->stats.tx_packets++;
+	dev->stats.tx_bytes += skb->len;
 
 	return 0;
 }
@@ -538,12 +511,19 @@ xpnet_dev_hard_start_xmit(struct sk_buff
 static void
 xpnet_dev_tx_timeout(struct net_device *dev)
 {
-	struct xpnet_dev_private *priv = netdev_priv(dev);
-
-	priv->stats.tx_errors++;
-	return;
+	dev->stats.tx_errors++;
 }
 
+static const struct net_device_ops xpnet_netdev_ops = {
+	.ndo_open		= xpnet_dev_open,
+	.ndo_stop		= xpnet_dev_stop,
+	.ndo_start_xmit		= xpnet_dev_hard_start_xmit,
+	.ndo_change_mtu		= xpnet_dev_change_mtu,
+	.ndo_tx_timeout		= xpnet_dev_tx_timeout,
+	.ndo_set_mac_address 	= eth_mac_addr,
+	.ndo_validate_addr	= eth_validate_addr,
+};
+
 static int __init
 xpnet_init(void)
 {
@@ -563,8 +543,7 @@ xpnet_init(void)
 	 * use ether_setup() to init the majority of our device
 	 * structure and then override the necessary pieces.
 	 */
-	xpnet_device = alloc_netdev(sizeof(struct xpnet_dev_private),
-				    XPNET_DEVICE_NAME, ether_setup);
+	xpnet_device = alloc_netdev(0, XPNET_DEVICE_NAME, ether_setup);
 	if (xpnet_device == NULL) {
 		kfree(xpnet_broadcast_partitions);
 		return -ENOMEM;
@@ -573,13 +552,6 @@ xpnet_init(void)
 	netif_carrier_off(xpnet_device);
 
 	xpnet_device->mtu = XPNET_DEF_MTU;
-	xpnet_device->change_mtu = xpnet_dev_change_mtu;
-	xpnet_device->open = xpnet_dev_open;
-	xpnet_device->get_stats = xpnet_dev_get_stats;
-	xpnet_device->stop = xpnet_dev_stop;
-	xpnet_device->hard_start_xmit = xpnet_dev_hard_start_xmit;
-	xpnet_device->tx_timeout = xpnet_dev_tx_timeout;
-	xpnet_device->set_config = xpnet_dev_set_config;
 
 	/*
 	 * Multicast assumes the LSB of the first octet is set for multicast

-- 


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

Thread overview: 95+ 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
     [not found]   ` <20090107003345.753201945-ZtmgI6mnKB3QT0dZR+AlfA@public.gmane.org>
2009-01-07  1:53     ` Marcel Holtmann
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 ` [PATCH 27/42] xircom: convert devices to new API Stephen Hemminger
2009-01-08  2:01   ` 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 ` Stephen Hemminger [this message]
2009-01-08  2:05   ` [PATCH 35/42] xpnet: " 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=20090107003349.257844151@vyatta.com \
    --to=shemminger@vyatta$(echo .)com \
    --cc=davem@davemloft$(echo .)net \
    --cc=netdev@vger$(echo .)kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox