From 40779b55228b4be807704e0fa687314244f34628 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Fri, 21 Nov 2008 17:32:54 -0800 Subject: [PATCH] --- yaml --- r: 122063 b: refs/heads/master c: c3ecb9f3235ce6e39249690cdd24d678894c2c72 h: refs/heads/master i: 122061: 3664bea9613542cb6d0c21de7bff1b7ce1fb02c3 122059: 459af06c9ebed2f14aa6a373f249389d85089dce 122055: 2ec00838e7a7626bacbc2585180f8a5b0fd1340e 122047: ad15cc65405231694a45932998f82759ebbc9787 v: v3 --- [refs] | 2 +- trunk/drivers/net/sfc/efx.c | 31 ++++++++++++++++++------------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/[refs] b/[refs] index bf3bb15fcaa8..e1049cb76768 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1abd266f091e4f281a7c1e8813106fdf1528bb56 +refs/heads/master: c3ecb9f3235ce6e39249690cdd24d678894c2c72 diff --git a/trunk/drivers/net/sfc/efx.c b/trunk/drivers/net/sfc/efx.c index ac7bdbf3fd4a..e5024bb8a46e 100644 --- a/trunk/drivers/net/sfc/efx.c +++ b/trunk/drivers/net/sfc/efx.c @@ -1433,12 +1433,28 @@ static void efx_set_multicast_list(struct net_device *net_dev) falcon_set_multicast_hash(efx); } +static const struct net_device_ops efx_netdev_ops = { + .ndo_open = efx_net_open, + .ndo_stop = efx_net_stop, + .ndo_get_stats = efx_net_stats, + .ndo_tx_timeout = efx_watchdog, + .ndo_start_xmit = efx_hard_start_xmit, + .ndo_validate_addr = eth_validate_addr, + .ndo_do_ioctl = efx_ioctl, + .ndo_change_mtu = efx_change_mtu, + .ndo_set_mac_address = efx_set_mac_address, + .ndo_set_multicast_list = efx_set_multicast_list, +#ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = efx_netpoll, +#endif +}; + static int efx_netdev_event(struct notifier_block *this, unsigned long event, void *ptr) { struct net_device *net_dev = ptr; - if (net_dev->open == efx_net_open && event == NETDEV_CHANGENAME) { + if (net_dev->netdev_ops == &efx_netdev_ops && event == NETDEV_CHANGENAME) { struct efx_nic *efx = netdev_priv(net_dev); strcpy(efx->name, net_dev->name); @@ -1459,18 +1475,7 @@ static int efx_register_netdev(struct efx_nic *efx) net_dev->watchdog_timeo = 5 * HZ; net_dev->irq = efx->pci_dev->irq; - net_dev->open = efx_net_open; - net_dev->stop = efx_net_stop; - net_dev->get_stats = efx_net_stats; - net_dev->tx_timeout = &efx_watchdog; - net_dev->hard_start_xmit = efx_hard_start_xmit; - net_dev->do_ioctl = efx_ioctl; - net_dev->change_mtu = efx_change_mtu; - net_dev->set_mac_address = efx_set_mac_address; - net_dev->set_multicast_list = efx_set_multicast_list; -#ifdef CONFIG_NET_POLL_CONTROLLER - net_dev->poll_controller = efx_netpoll; -#endif + net_dev->netdev_ops = &efx_netdev_ops; SET_NETDEV_DEV(net_dev, &efx->pci_dev->dev); SET_ETHTOOL_OPS(net_dev, &efx_ethtool_ops);