Re: [PATCH] ni5010: convert to net_device_ops

Previous thread: Re: skb_segment() questions by Herbert Xu on Saturday, March 28, 2009 - 7:07 pm. (11 messages)

Next thread: [PATCH] skbuff.h: fix missing kernel-doc by Randy Dunlap on Saturday, March 28, 2009 - 9:52 pm. (2 messages)
From: Alexander Beregalov
Date: Saturday, March 28, 2009 - 7:26 pm

Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
---

 drivers/net/ni5010.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ni5010.c b/drivers/net/ni5010.c
index 539e18a..b121e0f 100644
--- a/drivers/net/ni5010.c
+++ b/drivers/net/ni5010.c
@@ -189,6 +189,14 @@ static void __init trigger_irq(int ioaddr)
 		outb(MM_EN_XMT|MM_MUX, IE_MMODE); /* Start transmission */
 }
 
+static const struct net_device_ops ni5010_netdev_ops = {
+	.ndo_open		= ni5010_open,
+	.ndo_stop		= ni5010_close,
+	.ndo_start_xmit		= ni5010_send_packet,
+	.ndo_set_multicast_list	= ni5010_set_multicast_list,
+	.ndo_tx_timeout		= ni5010_timeout,
+};
+
 /*
  *      This is the real probe routine.  Linux has a history of friendly device
  *      probes on the ISA bus.  A good device probes avoids doing writes, and
@@ -328,13 +336,8 @@ static int __init ni5010_probe1(struct net_device *dev, int ioaddr)
         	outb(0, IE_RBUF);	/* set buffer byte 0 to 0 again */
 	}
         printk("-> bufsize rcv/xmt=%d/%d\n", bufsize_rcv, NI5010_BUFSIZE);
-	memset(netdev_priv(dev), 0, sizeof(struct ni5010_local));
 
-	dev->open		= ni5010_open;
-	dev->stop		= ni5010_close;
-	dev->hard_start_xmit	= ni5010_send_packet;
-	dev->set_multicast_list = ni5010_set_multicast_list;
-	dev->tx_timeout		= ni5010_timeout;
+	dev->netdev_ops		= &ni5010_netdev_ops;
 	dev->watchdog_timeo	= HZ/20;
 
 	dev->flags &= ~IFF_MULTICAST;	/* Multicast doesn't work */
--

From: David Miller
Date: Saturday, March 28, 2009 - 7:36 pm

From: Alexander Beregalov <a.beregalov@gmail.com>

Missing:

	.ndo_change_mtu		= eth_change_mtu,
	.ndo_set_mac_address 	= eth_mac_addr,
	.ndo_validate_addr	= eth_validate_addr,

as would have been initialized to dev->foo by alloc_etherdev().
--

From: Alexander Beregalov
Date: Saturday, March 28, 2009 - 7:51 pm

Ok, thanks.

Subject: [PATCH] ni5010: convert to net_device_ops
From: Alexander Beregalov <a.beregalov@gmail.com>


Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
---

 drivers/net/ni5010.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ni5010.c b/drivers/net/ni5010.c
index 539e18a..2a8da47 100644
--- a/drivers/net/ni5010.c
+++ b/drivers/net/ni5010.c
@@ -189,6 +189,17 @@ static void __init trigger_irq(int ioaddr)
 		outb(MM_EN_XMT|MM_MUX, IE_MMODE); /* Start transmission */
 }
 
+static const struct net_device_ops ni5010_netdev_ops = {
+	.ndo_open		= ni5010_open,
+	.ndo_stop		= ni5010_close,
+	.ndo_start_xmit		= ni5010_send_packet,
+	.ndo_set_multicast_list	= ni5010_set_multicast_list,
+	.ndo_tx_timeout		= ni5010_timeout,
+	.ndo_validate_addr	= eth_validate_addr,
+	.ndo_set_mac_address	= eth_mac_addr,
+	.ndo_change_mtu		= eth_change_mtu,
+};
+
 /*
  *      This is the real probe routine.  Linux has a history of friendly device
  *      probes on the ISA bus.  A good device probes avoids doing writes, and
@@ -328,13 +339,8 @@ static int __init ni5010_probe1(struct net_device *dev, int ioaddr)
         	outb(0, IE_RBUF);	/* set buffer byte 0 to 0 again */
 	}
         printk("-> bufsize rcv/xmt=%d/%d\n", bufsize_rcv, NI5010_BUFSIZE);
-	memset(netdev_priv(dev), 0, sizeof(struct ni5010_local));
 
-	dev->open		= ni5010_open;
-	dev->stop		= ni5010_close;
-	dev->hard_start_xmit	= ni5010_send_packet;
-	dev->set_multicast_list = ni5010_set_multicast_list;
-	dev->tx_timeout		= ni5010_timeout;
+	dev->netdev_ops		= &ni5010_netdev_ops;
 	dev->watchdog_timeo	= HZ/20;
 
 	dev->flags &= ~IFF_MULTICAST;	/* Multicast doesn't work */
--

From: David Miller
Date: Saturday, March 28, 2009 - 11:37 pm

From: Alexander Beregalov <a.beregalov@gmail.com>

Applied, thanks.
--

Previous thread: Re: skb_segment() questions by Herbert Xu on Saturday, March 28, 2009 - 7:07 pm. (11 messages)

Next thread: [PATCH] skbuff.h: fix missing kernel-doc by Randy Dunlap on Saturday, March 28, 2009 - 9:52 pm. (2 messages)