netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ax88796: start_xmit fix using net_device_ops
@ 2009-01-14  7:38 Magnus Damm
  2009-01-15  5:06 ` David Miller
  0 siblings, 1 reply; 2+ messages in thread
From: Magnus Damm @ 2009-01-14  7:38 UTC (permalink / raw)
  To: netdev; +Cc: Magnus Damm, lethal, shemminger, ben-linux, davem

From: Magnus Damm <damm@igel.co.jp>

This patch hooks up the start_xmit/tx_timeout/get_stats callbacks
in the ax88796 driver since they no longer are installed by the
lib8390 code. Without this patch the function dev_hard_start_xmit()
crashes due to a start_xmit callback with the value NULL.

While at it, update the ax88796 driver to make use of use of struct
net_device_ops.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
---

 This patch fixes the backplane ethernet crash on SuperH Highlander.

 drivers/net/ax88796.c |   27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)

--- 0001/drivers/net/ax88796.c
+++ work/drivers/net/ax88796.c	2009-01-14 15:06:13.000000000 +0900
@@ -37,7 +37,10 @@ static int phy_debug = 0;
 #define __ei_open       ax_ei_open
 #define __ei_close      ax_ei_close
 #define __ei_poll	ax_ei_poll
+#define __ei_start_xmit ax_ei_start_xmit
 #define __ei_tx_timeout ax_ei_tx_timeout
+#define __ei_get_stats  ax_ei_get_stats
+#define __ei_set_multicast_list ax_ei_set_multicast_list
 #define __ei_interrupt  ax_ei_interrupt
 #define ____alloc_ei_netdev ax__alloc_ei_netdev
 #define __NS8390_init   ax_NS8390_init
@@ -623,6 +626,23 @@ static void ax_eeprom_register_write(str
 }
 #endif
 
+static const struct net_device_ops ax_netdev_ops = {
+	.ndo_open		= ax_open,
+	.ndo_stop		= ax_close,
+	.ndo_do_ioctl		= ax_ioctl,
+
+	.ndo_start_xmit		= ax_ei_start_xmit,
+	.ndo_tx_timeout		= ax_ei_tx_timeout,
+	.ndo_get_stats		= ax_ei_get_stats,
+	.ndo_set_multicast_list = ax_ei_set_multicast_list,
+	.ndo_validate_addr	= eth_validate_addr,
+	.ndo_set_mac_address 	= eth_mac_addr,
+	.ndo_change_mtu		= eth_change_mtu,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+	.ndo_poll_controller	= ax_ei_poll,
+#endif
+};
+
 /* setup code */
 
 static void ax_initial_setup(struct net_device *dev, struct ei_device *ei_local)
@@ -738,9 +758,7 @@ static int ax_init_dev(struct net_device
 	ei_status.get_8390_hdr	= &ax_get_8390_hdr;
 	ei_status.priv = 0;
 
-	dev->open		= ax_open;
-	dev->stop		= ax_close;
-	dev->do_ioctl		= ax_ioctl;
+	dev->netdev_ops		= &ax_netdev_ops;
 	dev->ethtool_ops	= &ax_ethtool_ops;
 
 	ax->msg_enable		= NETIF_MSG_LINK;
@@ -753,9 +771,6 @@ static int ax_init_dev(struct net_device
 	ax->mii.mdio_write	= ax_phy_write;
 	ax->mii.dev		= dev;
 
-#ifdef CONFIG_NET_POLL_CONTROLLER
-	dev->poll_controller = ax_ei_poll;
-#endif
 	ax_NS8390_init(dev, 0);
 
 	if (first_init)

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] ax88796: start_xmit fix using net_device_ops
  2009-01-14  7:38 [PATCH] ax88796: start_xmit fix using net_device_ops Magnus Damm
@ 2009-01-15  5:06 ` David Miller
  0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2009-01-15  5:06 UTC (permalink / raw)
  To: magnus.damm; +Cc: netdev, lethal, shemminger, ben-linux

From: Magnus Damm <magnus.damm@gmail.com>
Date: Wed, 14 Jan 2009 16:38:27 +0900

> This patch hooks up the start_xmit/tx_timeout/get_stats callbacks
> in the ax88796 driver since they no longer are installed by the
> lib8390 code. Without this patch the function dev_hard_start_xmit()
> crashes due to a start_xmit callback with the value NULL.
> 
> While at it, update the ax88796 driver to make use of use of struct
> net_device_ops.
> 
> Signed-off-by: Magnus Damm <damm@igel.co.jp>

Applied, thanks a lot Magnus.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-01-15  5:06 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-14  7:38 [PATCH] ax88796: start_xmit fix using net_device_ops Magnus Damm
2009-01-15  5:06 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).