Commit c02373bf authored by Stephen Hemminger's avatar Stephen Hemminger Committed by David S. Miller
Browse files

netdev: convert loopback to net_device_ops



First device to convert over is the loopback device.
Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ccad637b
...@@ -87,7 +87,7 @@ static int loopback_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -87,7 +87,7 @@ static int loopback_xmit(struct sk_buff *skb, struct net_device *dev)
return 0; return 0;
} }
static struct net_device_stats *get_stats(struct net_device *dev) static struct net_device_stats *loopback_get_stats(struct net_device *dev)
{ {
const struct pcpu_lstats *pcpu_lstats; const struct pcpu_lstats *pcpu_lstats;
struct net_device_stats *stats = &dev->stats; struct net_device_stats *stats = &dev->stats;
...@@ -143,13 +143,17 @@ static void loopback_dev_free(struct net_device *dev) ...@@ -143,13 +143,17 @@ static void loopback_dev_free(struct net_device *dev)
free_netdev(dev); free_netdev(dev);
} }
static const struct net_device_ops loopback_ops = {
.ndo_init = loopback_dev_init,
.ndo_get_stats = loopback_get_stats,
};
/* /*
* The loopback device is special. There is only one instance * The loopback device is special. There is only one instance
* per network namespace. * per network namespace.
*/ */
static void loopback_setup(struct net_device *dev) static void loopback_setup(struct net_device *dev)
{ {
dev->get_stats = &get_stats;
dev->mtu = (16 * 1024) + 20 + 20 + 12; dev->mtu = (16 * 1024) + 20 + 20 + 12;
dev->hard_start_xmit = loopback_xmit; dev->hard_start_xmit = loopback_xmit;
dev->hard_header_len = ETH_HLEN; /* 14 */ dev->hard_header_len = ETH_HLEN; /* 14 */
...@@ -165,8 +169,8 @@ static void loopback_setup(struct net_device *dev) ...@@ -165,8 +169,8 @@ static void loopback_setup(struct net_device *dev)
| NETIF_F_NETNS_LOCAL; | NETIF_F_NETNS_LOCAL;
dev->ethtool_ops = &loopback_ethtool_ops; dev->ethtool_ops = &loopback_ethtool_ops;
dev->header_ops = &eth_header_ops; dev->header_ops = &eth_header_ops;
dev->init = loopback_dev_init; dev->netdev_ops = &loopback_ops;
dev->destructor = loopback_dev_free; dev->destructor = loopback_dev_free;
} }
/* Setup and register the loopback device. */ /* Setup and register the loopback device. */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment