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
--
next prev parent reply other threads:[~2009-01-07 0:54 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 ` [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.com \
--cc=davem@davemloft.net \
--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.